var Fabric =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "./lib/index.bundle.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../../node_modules/@microsoft/load-themed-styles/lib/index.js":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {
/**
 * An IThemingInstruction can specify a rawString to be preserved or a theme slot and a default value
 * to use if that slot is not specified by the theme.
 */
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
// IE needs to inject styles using cssText. However, we need to evaluate this lazily, so this
// value will initialize as undefined, and later will be set once on first loadStyles injection.
var _injectStylesWithCssText;
// Store the theming state in __themeState__ global scope for reuse in the case of duplicate
// load-themed-styles hosted on the page.
var _root = (typeof window === 'undefined') ? global : window; // tslint:disable-line:no-any
// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).
var _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;
var _themeState = initializeThemeState();
/**
 * Matches theming tokens. For example, "[theme: themeSlotName, default: #FFF]" (including the quotes).
 */
// tslint:disable-next-line:max-line-length
var _themeTokenRegex = /[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g;
/** Maximum style text length, for supporting IE style restrictions. */
var MAX_STYLE_CONTENT_SIZE = 10000;
var now = function () { return (typeof performance !== 'undefined' && !!performance.now) ? performance.now() : Date.now(); };
function measure(func) {
    var start = now();
    func();
    var end = now();
    _themeState.perf.duration += end - start;
}
/**
 * initialize global state object
 */
function initializeThemeState() {
    var state = _root.__themeState__ || {
        theme: undefined,
        lastStyleElement: undefined,
        registeredStyles: []
    };
    if (!state.runState) {
        state = __assign({}, (state), { perf: {
                count: 0,
                duration: 0
            }, runState: {
                flushTimer: 0,
                mode: 0 /* sync */,
                buffer: []
            } });
    }
    if (!state.registeredThemableStyles) {
        state = __assign({}, (state), { registeredThemableStyles: [] });
    }
    _root.__themeState__ = state;
    return state;
}
/**
 * Loads a set of style text. If it is registered too early, we will register it when the window.load
 * event is fired.
 * @param {string | ThemableArray} styles Themable style text to register.
 * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.
 */
function loadStyles(styles, loadAsync) {
    if (loadAsync === void 0) { loadAsync = false; }
    measure(function () {
        var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);
        if (_injectStylesWithCssText === undefined) {
            _injectStylesWithCssText = shouldUseCssText();
        }
        var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;
        if (loadAsync || mode === 1 /* async */) {
            buffer.push(styleParts);
            if (!flushTimer) {
                _themeState.runState.flushTimer = asyncLoadStyles();
            }
        }
        else {
            applyThemableStyles(styleParts);
        }
    });
}
exports.loadStyles = loadStyles;
/**
 * Allows for customizable loadStyles logic. e.g. for server side rendering application
 * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}
 * a loadStyles callback that gets called when styles are loaded or reloaded
 */
function configureLoadStyles(loadStylesFn) {
    _themeState.loadStyles = loadStylesFn;
}
exports.configureLoadStyles = configureLoadStyles;
/**
 * Configure run mode of load-themable-styles
 * @param mode load-themable-styles run mode, async or sync
 */
function configureRunMode(mode) {
    _themeState.runState.mode = mode;
}
exports.configureRunMode = configureRunMode;
/**
 * external code can call flush to synchronously force processing of currently buffered styles
 */
function flush() {
    measure(function () {
        var styleArrays = _themeState.runState.buffer.slice();
        _themeState.runState.buffer = [];
        var mergedStyleArray = [].concat.apply([], styleArrays);
        if (mergedStyleArray.length > 0) {
            applyThemableStyles(mergedStyleArray);
        }
    });
}
exports.flush = flush;
/**
 * register async loadStyles
 */
function asyncLoadStyles() {
    return setTimeout(function () {
        _themeState.runState.flushTimer = 0;
        flush();
    }, 0);
}
/**
 * Loads a set of style text. If it is registered too early, we will register it when the window.load event
 * is fired.
 * @param {string} styleText Style to register.
 * @param {IStyleRecord} styleRecord Existing style record to re-apply.
 */
function applyThemableStyles(stylesArray, styleRecord) {
    if (_themeState.loadStyles) {
        _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);
    }
    else {
        _injectStylesWithCssText ?
            registerStylesIE(stylesArray, styleRecord) :
            registerStyles(stylesArray);
    }
}
/**
 * Registers a set theme tokens to find and replace. If styles were already registered, they will be
 * replaced.
 * @param {theme} theme JSON object of theme tokens to values.
 */
function loadTheme(theme) {
    _themeState.theme = theme;
    // reload styles.
    reloadStyles();
}
exports.loadTheme = loadTheme;
/**
 * Clear already registered style elements and style records in theme_State object
 * @param option - specify which group of registered styles should be cleared.
 * Default to be both themable and non-themable styles will be cleared
 */
function clearStyles(option) {
    if (option === void 0) { option = 3 /* all */; }
    if (option === 3 /* all */ || option === 2 /* onlyNonThemable */) {
        clearStylesInternal(_themeState.registeredStyles);
        _themeState.registeredStyles = [];
    }
    if (option === 3 /* all */ || option === 1 /* onlyThemable */) {
        clearStylesInternal(_themeState.registeredThemableStyles);
        _themeState.registeredThemableStyles = [];
    }
}
exports.clearStyles = clearStyles;
function clearStylesInternal(records) {
    records.forEach(function (styleRecord) {
        var styleElement = styleRecord && styleRecord.styleElement;
        if (styleElement && styleElement.parentElement) {
            styleElement.parentElement.removeChild(styleElement);
        }
    });
}
/**
 * Reloads styles.
 */
function reloadStyles() {
    if (_themeState.theme) {
        var themableStyles = [];
        for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {
            var styleRecord = _a[_i];
            themableStyles.push(styleRecord.themableStyle);
        }
        if (themableStyles.length > 0) {
            clearStyles(1 /* onlyThemable */);
            applyThemableStyles([].concat.apply([], themableStyles));
        }
    }
}
/**
 * Find theme tokens and replaces them with provided theme values.
 * @param {string} styles Tokenized styles to fix.
 */
function detokenize(styles) {
    if (styles) {
        styles = resolveThemableArray(splitStyles(styles)).styleString;
    }
    return styles;
}
exports.detokenize = detokenize;
/**
 * Resolves ThemingInstruction objects in an array and joins the result into a string.
 * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.
 */
function resolveThemableArray(splitStyleArray) {
    var theme = _themeState.theme;
    var themable = false;
    // Resolve the array of theming instructions to an array of strings.
    // Then join the array to produce the final CSS string.
    var resolvedArray = (splitStyleArray || []).map(function (currentValue) {
        var themeSlot = currentValue.theme;
        if (themeSlot) {
            themable = true;
            // A theming annotation. Resolve it.
            var themedValue = theme ? theme[themeSlot] : undefined;
            var defaultValue = currentValue.defaultValue || 'inherit';
            // Warn to console if we hit an unthemed value even when themes are provided, but only if "DEBUG" is true.
            // Allow the themedValue to be undefined to explicitly request the default value.
            if (theme && !themedValue && console && !(themeSlot in theme) && typeof DEBUG !== 'undefined' && DEBUG) {
                console.warn("Theming value not provided for \"" + themeSlot + "\". Falling back to \"" + defaultValue + "\".");
            }
            return themedValue || defaultValue;
        }
        else {
            // A non-themable string. Preserve it.
            return currentValue.rawString;
        }
    });
    return {
        styleString: resolvedArray.join(''),
        themable: themable
    };
}
/**
 * Split tokenized CSS into an array of strings and theme specification objects
 * @param {string} styles Tokenized styles to split.
 */
function splitStyles(styles) {
    var result = [];
    if (styles) {
        var pos = 0; // Current position in styles.
        var tokenMatch = void 0; // tslint:disable-line:no-null-keyword
        while (tokenMatch = _themeTokenRegex.exec(styles)) {
            var matchIndex = tokenMatch.index;
            if (matchIndex > pos) {
                result.push({
                    rawString: styles.substring(pos, matchIndex)
                });
            }
            result.push({
                theme: tokenMatch[1],
                defaultValue: tokenMatch[2] // May be undefined
            });
            // index of the first character after the current match
            pos = _themeTokenRegex.lastIndex;
        }
        // Push the rest of the string after the last match.
        result.push({
            rawString: styles.substring(pos)
        });
    }
    return result;
}
exports.splitStyles = splitStyles;
/**
 * Registers a set of style text. If it is registered too early, we will register it when the
 * window.load event is fired.
 * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
 * @param {IStyleRecord} styleRecord May specify a style Element to update.
 */
function registerStyles(styleArray) {
    if (typeof document === 'undefined') {
        return;
    }
    var head = document.getElementsByTagName('head')[0];
    var styleElement = document.createElement('style');
    var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;
    styleElement.type = 'text/css';
    if (_styleNonce) {
        styleElement.setAttribute('nonce', _styleNonce);
    }
    styleElement.appendChild(document.createTextNode(styleString));
    _themeState.perf.count++;
    head.appendChild(styleElement);
    var record = {
        styleElement: styleElement,
        themableStyle: styleArray
    };
    if (themable) {
        _themeState.registeredThemableStyles.push(record);
    }
    else {
        _themeState.registeredStyles.push(record);
    }
}
/**
 * Registers a set of style text, for IE 9 and below, which has a ~30 style element limit so we need
 * to register slightly differently.
 * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
 * @param {IStyleRecord} styleRecord May specify a style Element to update.
 */
function registerStylesIE(styleArray, styleRecord) {
    if (typeof document === 'undefined') {
        return;
    }
    var head = document.getElementsByTagName('head')[0];
    var registeredStyles = _themeState.registeredStyles;
    var lastStyleElement = _themeState.lastStyleElement;
    var stylesheet = lastStyleElement ? lastStyleElement.styleSheet : undefined;
    var lastStyleContent = stylesheet ? stylesheet.cssText : '';
    var lastRegisteredStyle = registeredStyles[registeredStyles.length - 1];
    var resolvedStyleText = resolveThemableArray(styleArray).styleString;
    if (!lastStyleElement || (lastStyleContent.length + resolvedStyleText.length) > MAX_STYLE_CONTENT_SIZE) {
        lastStyleElement = document.createElement('style');
        lastStyleElement.type = 'text/css';
        if (styleRecord) {
            head.replaceChild(lastStyleElement, styleRecord.styleElement);
            styleRecord.styleElement = lastStyleElement;
        }
        else {
            head.appendChild(lastStyleElement);
        }
        if (!styleRecord) {
            lastRegisteredStyle = {
                styleElement: lastStyleElement,
                themableStyle: styleArray
            };
            registeredStyles.push(lastRegisteredStyle);
        }
    }
    lastStyleElement.styleSheet.cssText += detokenize(resolvedStyleText);
    Array.prototype.push.apply(lastRegisteredStyle.themableStyle, styleArray); // concat in-place
    // Preserve the theme state.
    _themeState.lastStyleElement = lastStyleElement;
}
/**
 * Checks to see if styleSheet exists as a property off of a style element.
 * This will determine if style registration should be done via cssText (<= IE9) or not
 */
function shouldUseCssText() {
    var useCSSText = false;
    if (typeof document !== 'undefined') {
        var emptyStyle = document.createElement('style');
        emptyStyle.type = 'text/css';
        useCSSText = !!emptyStyle.styleSheet;
    }
    return useCSSText;
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("../../node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "../../node_modules/tslib/tslib.es6.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */

var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return extendStatics(d, b);
};

function __extends(d, b) {
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

var __assign = function() {
    __assign = Object.assign || function __assign(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
        }
        return t;
    }
    return __assign.apply(this, arguments);
}

function __rest(s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
}

function __decorate(decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    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;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
}

function __param(paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
}

function __metadata(metadataKey, metadataValue) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

function __awaiter(thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}

function __generator(thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            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;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
}

function __exportStar(m, exports) {
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}

function __values(o) {
    var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
    if (m) return m.call(o);
    return {
        next: function () {
            if (o && i >= o.length) o = void 0;
            return { value: o && o[i++], done: !o };
        }
    };
}

function __read(o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
}

function __spread() {
    for (var ar = [], i = 0; i < arguments.length; i++)
        ar = ar.concat(__read(arguments[i]));
    return ar;
}

function __spreadArrays() {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
};

function __await(v) {
    return this instanceof __await ? (this.v = v, this) : new __await(v);
}

function __asyncGenerator(thisArg, _arguments, generator) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var g = generator.apply(thisArg, _arguments || []), i, q = [];
    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
    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); }); }; }
    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
    function fulfill(value) { resume("next", value); }
    function reject(value) { resume("throw", value); }
    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}

function __asyncDelegator(o) {
    var i, p;
    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
    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; }
}

function __asyncValues(o) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var m = o[Symbol.asyncIterator], i;
    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);
    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); }); }; }
    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}

function __makeTemplateObject(cooked, raw) {
    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
    return cooked;
};

function __importStar(mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result.default = mod;
    return result;
}

function __importDefault(mod) {
    return (mod && mod.__esModule) ? mod : { default: mod };
}


/***/ }),

/***/ "../../node_modules/webpack/buildin/global.js":
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || new Function("return this")();
} catch (e) {
	// This works if the window reference is available
	if (typeof window === "object") g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),

/***/ "../foundation/lib/ThemeProvider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return ThemeProvider; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/index.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/index.js");




/**
 * Theme provider is a simplified version of Customizer that activates the appropriate theme data
 * for a given scheme name.
 *
 * @param providers - Injected providers for accessing theme data and providing it via a Customizer component.
 */
var ThemeProvider = function (props) {
    var scheme = props.scheme, theme = props.theme, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](props, ["scheme", "theme"]);
    // TODO: consider merging implementation with theme-proto, which only stores a reference / scheme name to theme in context
    //        and uses quick global store accessor to trigger change by passing in theme object as child and triggering re-render.
    //        (perf benefits need verification)
    // tslint:disable-next-line:typedef
    var contextTransform = function (context) {
        return Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_2__["getThemedContext"])(context, scheme, theme);
    };
    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__["Customizer"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rest, { contextTransform: contextTransform }));
};


/***/ }),

/***/ "../foundation/lib/createComponent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createComponent", function() { return createComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/index.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _slots__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../foundation/lib/slots.js");
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../foundation/lib/utilities.js");






/**
 * Assembles a higher order component based on the following: styles, theme, view, and state.
 * Imposes a separation of concern and centralizes styling processing to increase ease of use and robustness
 * in how components use and apply styling and theming.
 *
 * Automatically merges and applies themes and styles with theme / styleprops having the highest priority.
 * State component, if provided, is passed in props for processing. Props from state / user are automatically processed
 * and styled before finally being passed to view.
 *
 * State components should contain all stateful behavior and should not generate any JSX, but rather simply call the view prop.
 * Views should simply be stateless pure functions that receive all props needed for rendering their output.
 * State component is optional. If state is not provided, created component is essentially a functional stateless component.
 *
 * @param options - component Component options. See IComponentOptions for more detail.
 */
function createComponent(view, options) {
    if (options === void 0) { options = {}; }
    var _a = options.factoryOptions, factoryOptions = _a === void 0 ? {} : _a;
    var defaultProp = factoryOptions.defaultProp;
    var result = function (componentProps) {
        var settings = _getCustomizations(options.displayName, react__WEBPACK_IMPORTED_MODULE_1__["useContext"](_uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__["CustomizerContext"]), options.fields);
        var useState = options.state;
        if (useState) {
            // Don't assume state will return all props, so spread useState result over component props.
            componentProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, componentProps, useState(componentProps));
        }
        var theme = componentProps.theme || settings.theme;
        var tokens = _resolveTokens(componentProps, theme, options.tokens, settings.tokens, componentProps.tokens);
        var styles = _resolveStyles(componentProps, theme, tokens, options.styles, settings.styles, componentProps.styles);
        var viewProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, componentProps, { styles: styles,
            tokens: tokens, _defaultStyles: styles });
        return view(viewProps);
    };
    result.displayName = options.displayName || view.name;
    // If a shorthand prop is defined, create a factory for the component.
    // TODO: This shouldn't be a concern of createComponent.. factoryOptions should just be forwarded.
    //       Need to weigh creating default factories on component creation vs. memoizing them on use in slots.tsx.
    if (defaultProp) {
        result.create = Object(_slots__WEBPACK_IMPORTED_MODULE_4__["createFactory"])(result, { defaultProp: defaultProp });
    }
    Object(_utilities__WEBPACK_IMPORTED_MODULE_5__["assign"])(result, options.statics);
    // Later versions of TypeSript should allow us to merge objects in a type safe way and avoid this cast.
    return result;
}
/**
 * Resolve all styles functions with both props and tokens and flatten results along with all styles objects.
 */
function _resolveStyles(props, theme, tokens) {
    var allStyles = [];
    for (var _i = 3; _i < arguments.length; _i++) {
        allStyles[_i - 3] = arguments[_i];
    }
    return _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__["concatStyleSets"].apply(void 0, allStyles.map(function (styles) {
        return typeof styles === 'function' ? styles(props, theme, tokens) : styles;
    }));
}
/**
 * Resolve all tokens functions with props flatten results along with all tokens objects.
 */
function _resolveTokens(props, theme) {
    var allTokens = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        allTokens[_i - 2] = arguments[_i];
    }
    var tokens = {};
    for (var _a = 0, allTokens_1 = allTokens; _a < allTokens_1.length; _a++) {
        var currentTokens = allTokens_1[_a];
        if (currentTokens) {
            // TODO: why is this cast needed? TS seems to think there is a (TToken | Function) union from somewhere.
            currentTokens =
                typeof currentTokens === 'function' ? currentTokens(props, theme) : currentTokens;
            if (Array.isArray(currentTokens)) {
                currentTokens = _resolveTokens.apply(void 0, [props, theme].concat(currentTokens));
            }
            _utilities__WEBPACK_IMPORTED_MODULE_5__["assign"].apply(void 0, [tokens].concat(currentTokens));
        }
    }
    return tokens;
}
/**
 * Helper function for calling Customizations.getSettings falling back to default fields.
 *
 * @param displayName Displayable name for component.
 * @param context React context passed to component containing contextual settings.
 * @param fields Optional list of properties to grab from global store and context.
 */
function _getCustomizations(displayName, context, fields) {
    // TODO: do we want field props? should fields be part of IComponent and used here?
    // TODO: should we centrally define DefaultFields? (not exported from styling)
    // TODO: tie this array to ICustomizationProps, such that each array element is keyof ICustomizationProps
    var DefaultFields = ['theme', 'styles', 'tokens'];
    return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__["Customizations"].getSettings(fields || DefaultFields, displayName, context.customizations);
}


/***/ }),

/***/ "../foundation/lib/hooks/controlled.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useControlledState", function() { return useControlledState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getControlledDerivedProps", function() { return getControlledDerivedProps; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Controlled state helper that gives priority to props value. Useful for components that have props with both controlled
 * and uncontrolled modes. Any props values will override state, but will not update internal state. If prop is defined
 * and then later undefined, state will revert to its previous value.
 *
 * @param props - The props object containing controlled prop values.
 * @param propName - The controlled prop name.
 * @param options - Options. defaultPropValue is only used if defaultPropName (or its value) is undefined.
 */
function useControlledState(props, propName, options) {
    var defaultValue;
    if (options) {
        if (options.defaultPropName && props[options.defaultPropName] !== undefined) {
            // No easy way to coerce TProps[TDefaultProp] to match TProps[TProp] in generic typings, so cast it here.
            defaultValue = props[options.defaultPropName];
        }
        else {
            defaultValue = options && options.defaultPropValue;
        }
    }
    var _a = react__WEBPACK_IMPORTED_MODULE_0__["useState"](defaultValue), state = _a[0], setState = _a[1];
    if (props[propName] !== undefined) {
        return [props[propName], setState];
    }
    else {
        return [state, setState];
    }
}
/**
 * Simple controlled helper that gives priority to props value and falls back to derived value.
 *
 * @param props - The props object containing controlled prop values.
 * @param propName - The controlled prop name.
 * @param derivedValue - Derived value. Returned when controlled value is not present.
 */
function getControlledDerivedProps(props, propName, derivedValue) {
    if (props[propName] !== undefined) {
        return props[propName];
    }
    else {
        return derivedValue;
    }
}


/***/ }),

/***/ "../foundation/lib/hooks/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _controlled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../foundation/lib/hooks/controlled.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useControlledState", function() { return _controlled__WEBPACK_IMPORTED_MODULE_0__["useControlledState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getControlledDerivedProps", function() { return _controlled__WEBPACK_IMPORTED_MODULE_0__["getControlledDerivedProps"]; });




/***/ }),

/***/ "../foundation/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _createComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../foundation/lib/createComponent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createComponent", function() { return _createComponent__WEBPACK_IMPORTED_MODULE_0__["createComponent"]; });

/* harmony import */ var _slots__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../foundation/lib/slots.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withSlots", function() { return _slots__WEBPACK_IMPORTED_MODULE_1__["withSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFactory", function() { return _slots__WEBPACK_IMPORTED_MODULE_1__["createFactory"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSlots", function() { return _slots__WEBPACK_IMPORTED_MODULE_1__["getSlots"]; });

/* harmony import */ var _ThemeProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../foundation/lib/ThemeProvider.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return _ThemeProvider__WEBPACK_IMPORTED_MODULE_2__["ThemeProvider"]; });

/* harmony import */ var _hooks_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../foundation/lib/hooks/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useControlledState", function() { return _hooks_index__WEBPACK_IMPORTED_MODULE_3__["useControlledState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getControlledDerivedProps", function() { return _hooks_index__WEBPACK_IMPORTED_MODULE_3__["getControlledDerivedProps"]; });

/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "legacyStyled", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_4__["styled"]; });

/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../foundation/lib/version.js");








/***/ }),

/***/ "../foundation/lib/slots.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withSlots", function() { return withSlots; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFactory", function() { return createFactory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSlots", function() { return getSlots; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/index.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../foundation/lib/utilities.js");





/**
 * This function is required for any module that uses slots.
 *
 * This function is a slot resolver that automatically evaluates slot functions to generate React elements.
 * A byproduct of this resolver is that it removes slots from the React hierarchy by bypassing React.createElement.
 *
 * To use this function on a per-file basis, use the jsx directive targeting withSlots.
 * This directive must be the FIRST LINE in the file to work correctly.
 * Usage of this pragma also requires withSlots import statement.
 *
 * See React.createElement
 */
// Can't use typeof on React.createElement since it's overloaded. Approximate createElement's signature for now and widen as needed.
function withSlots(type, props) {
    // tslint:disable-next-line:missing-optional-annotation
    var children = [];
    for (
    // tslint:disable-next-line:missing-optional-annotation
    var _i = 2; 
    // tslint:disable-next-line:missing-optional-annotation
    _i < arguments.length; 
    // tslint:disable-next-line:missing-optional-annotation
    _i++) {
        // tslint:disable-next-line:missing-optional-annotation
        children[_i - 2] = arguments[_i];
    }
    var slotType = type;
    if (slotType.isSlot) {
        // TODO: There is something weird going on here with children embedded in props vs. rest args.
        // Comment out these lines to see. Make sure this function is doing the right things.
        var numChildren = react__WEBPACK_IMPORTED_MODULE_1__["Children"].count(children);
        if (numChildren === 0) {
            return slotType(props);
        }
        // Since we are bypassing createElement, use React.Children.toArray to make sure children are properly assigned keys.
        // TODO: should this be mutating? does React mutate children subprop with createElement?
        // TODO: will toArray clobber existing keys?
        // TODO: React generates warnings because it doesn't detect hidden member _store that is set in createElement.
        //        Even children passed to createElement without keys don't generate this warning.
        //        Is there a better way to prevent slots from appearing in hierarchy? toArray doesn't address root issue.
        children = react__WEBPACK_IMPORTED_MODULE_1__["Children"].toArray(children);
        return slotType(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { children: children }));
    }
    else {
        // TODO: Are there some cases where children should NOT be spread? Also, spreading reraises perf question.
        //        Children had to be spread to avoid breaking KeytipData in Toggle.view:
        //        react-dom.development.js:18931 Uncaught TypeError: children is not a function
        //        Without spread, function child is a child array of one element
        // TODO: is there a reason this can't be:
        // return React.createElement.apply(this, arguments);
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"].apply(react__WEBPACK_IMPORTED_MODULE_1__, [type, props].concat(children));
    }
}
/**
 * This function creates factories that render ouput depending on the user ISlotProp props passed in.
 * @param DefaultComponent - Base component to render when not overridden by user props.
 * @param options - Factory options, including defaultProp value for shorthand prop mapping.
 * @returns ISlotFactory function used for rendering slots.
 */
function createFactory(DefaultComponent, options) {
    if (options === void 0) { options = {}; }
    var _a = options.defaultProp, defaultProp = _a === void 0 ? 'children' : _a;
    var result = function (componentProps, userProps, userSlotOptions, defaultStyles) {
        // If they passed in raw JSX, just return that.
        if (react__WEBPACK_IMPORTED_MODULE_1__["isValidElement"](userProps)) {
            return userProps;
        }
        var flattenedUserProps = _translateShorthand(defaultProp, userProps);
        var finalProps = _constructFinalProps(defaultStyles, componentProps, flattenedUserProps);
        if (userSlotOptions) {
            if (userSlotOptions.component) {
                // TODO: Remove cast if possible. This cast is needed because TS errors on the intrinsic portion of ReactType.
                // return <userSlotOptions.component {...finalProps} />;
                var UserComponent = userSlotOptions.component;
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](UserComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, finalProps));
            }
            if (userSlotOptions.render) {
                return userSlotOptions.render(finalProps, DefaultComponent);
            }
        }
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](DefaultComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, finalProps));
    };
    return result;
}
/**
 * Default factory for components without explicit factories.
 */
var defaultFactory = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (type) { return createFactory(type); });
/**
 * This function generates slots that can be used in JSX given a definition of slots and their corresponding types.
 * @param userProps - Props as pass to component.
 * @param slots - Slot definition object defining the default slot component for each slot.
 * @returns A set of created slots that components can render in JSX.
 */
function getSlots(userProps, slots) {
    var result = {};
    // userProps already has default props mixed in by createComponent. Recast here to gain typing for this function.
    var mixedProps = userProps;
    var _loop_1 = function (name_1) {
        if (slots.hasOwnProperty(name_1)) {
            // This closure method requires the use of withSlots to prevent unnecessary rerenders. This is because React detects
            //  each closure as a different component (since it is a new instance) from the previous one and then forces a rerender of the entire
            //  slot subtree. For now, the only way to avoid this is to use withSlots, which bypasses the call to React.createElement.
            var slot = function (componentProps) {
                var args = [];
                for (var _i = 1; _i < arguments.length; _i++) {
                    args[_i - 1] = arguments[_i];
                }
                if (args.length > 0) {
                    // If React.createElement is being incorrectly used with slots, there will be additional arguments.
                    // We can detect these additional arguments and error on their presence.
                    throw new Error('Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.');
                }
                // TODO: having TS infer types here seems to cause infinite loop. use explicit types or casting to preserve typing if possible.
                // TODO: this should be a lookup on TProps property instead of being TProps directly, which is probably causing the infinite loop
                return _renderSlot(slots[name_1], 
                // TODO: this cast to any is hiding a relationship issue between the first two args
                componentProps, mixedProps[name_1], mixedProps.slots && mixedProps.slots[name_1], 
                // _defaultStyles should always be present, but a check for existence is added to make view tests easier to use.
                mixedProps._defaultStyles && mixedProps._defaultStyles[name_1]);
            };
            slot.isSlot = true;
            result[name_1] = slot;
        }
    };
    for (var name_1 in slots) {
        _loop_1(name_1);
    }
    return result;
}
/**
 * Helper function that translates shorthand as needed.
 * @param defaultProp
 * @param slotProps
 */
function _translateShorthand(defaultProp, slotProps) {
    var _a;
    var transformedProps;
    if (typeof slotProps === 'string' || typeof slotProps === 'number' || typeof slotProps === 'boolean') {
        transformedProps = (_a = {},
            _a[defaultProp] = slotProps,
            _a);
    }
    else {
        transformedProps = slotProps;
    }
    return transformedProps;
}
/**
 * Helper function that constructs final styles and props given a series of props ordered by increasing priority.
 */
function _constructFinalProps(defaultStyles) {
    var allProps = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        allProps[_i - 1] = arguments[_i];
    }
    var finalProps = {};
    var classNames = [];
    for (var _a = 0, allProps_1 = allProps; _a < allProps_1.length; _a++) {
        var props = allProps_1[_a];
        classNames.push(props && props.className);
        _utilities__WEBPACK_IMPORTED_MODULE_4__["assign"].apply(void 0, [finalProps].concat(props));
    }
    finalProps.className = Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_2__["mergeStyles"])(defaultStyles, classNames);
    return finalProps;
}
/**
 * Render a slot given component and user props. Uses component factory if available, otherwise falls back
 * to default factory.
 * @param ComponentType Factory component type.
 * @param componentProps The properties passed into slot from within the component.
 * @param userProps The user properties passed in from outside of the component.
 */
function _renderSlot(ComponentType, componentProps, userProps, slotOptions, defaultStyles) {
    if (ComponentType.create !== undefined) {
        return ComponentType.create(componentProps, userProps, slotOptions, defaultStyles);
    }
    else {
        // TODO: need to resolve typing / generic issues passing through memoizeFunction. for now, cast to 'unknown'
        return defaultFactory(ComponentType)(componentProps, userProps, slotOptions, defaultStyles);
    }
}


/***/ }),

/***/ "../foundation/lib/utilities.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");

var assign = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"];


/***/ }),

/***/ "../foundation/lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// @uifabric/foundation@7.5.0
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/foundation', '7.5.0');


/***/ }),

/***/ "../icons/lib/fabric-icons-0.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-0\"",
            src: "url('" + baseUrl + "fabric-icons-0-467ee27f.woff') format('woff')"
        },
        icons: {
            'PageLink': '\uE302',
            'CommentSolid': '\uE30E',
            'ChangeEntitlements': '\uE310',
            'Installation': '\uE311',
            'WebAppBuilderModule': '\uE313',
            'WebAppBuilderFragment': '\uE314',
            'WebAppBuilderSlot': '\uE315',
            'BullseyeTargetEdit': '\uE319',
            'WebAppBuilderFragmentCreate': '\uE31B',
            'PageData': '\uE31C',
            'PageHeaderEdit': '\uE31D',
            'ProductList': '\uE31E',
            'UnpublishContent': '\uE31F',
            'DependencyAdd': '\uE344',
            'DependencyRemove': '\uE345',
            'EntitlementPolicy': '\uE346',
            'EntitlementRedemption': '\uE347',
            'SchoolDataSyncLogo': '\uE34C',
            'PinSolid12': '\uE352',
            'PinSolidOff12': '\uE353',
            'AddLink': '\uE35E',
            'SharepointAppIcon16': '\uE365',
            'DataflowsLink': '\uE366',
            'TimePicker': '\uE367',
            'UserWarning': '\uE368',
            'ComplianceAudit': '\uE369',
            'InternetSharing': '\uE704',
            'Brightness': '\uE706',
            'MapPin': '\uE707',
            'Airplane': '\uE709',
            'Tablet': '\uE70A',
            'QuickNote': '\uE70B',
            'Video': '\uE714',
            'People': '\uE716',
            'Phone': '\uE717',
            'Pin': '\uE718',
            'Shop': '\uE719',
            'Stop': '\uE71A',
            'Link': '\uE71B',
            'AllApps': '\uE71D',
            'Zoom': '\uE71E',
            'ZoomOut': '\uE71F',
            'Microphone': '\uE720',
            'Camera': '\uE722',
            'Attach': '\uE723',
            'Send': '\uE724',
            'FavoriteList': '\uE728',
            'PageSolid': '\uE729',
            'Forward': '\uE72A',
            'Back': '\uE72B',
            'Refresh': '\uE72C',
            'Lock': '\uE72E',
            'ReportHacked': '\uE730',
            'EMI': '\uE731',
            'MiniLink': '\uE732',
            'Blocked': '\uE733',
            'ReadingMode': '\uE736',
            'Favicon': '\uE737',
            'Remove': '\uE738',
            'Checkbox': '\uE739',
            'CheckboxComposite': '\uE73A',
            'CheckboxFill': '\uE73B',
            'CheckboxIndeterminate': '\uE73C',
            'CheckboxCompositeReversed': '\uE73D',
            'BackToWindow': '\uE73F',
            'FullScreen': '\uE740',
            'Print': '\uE749',
            'Up': '\uE74A',
            'Down': '\uE74B',
            'OEM': '\uE74C',
            'Save': '\uE74E',
            'ReturnKey': '\uE751',
            'Cloud': '\uE753',
            'Flashlight': '\uE754',
            'CommandPrompt': '\uE756',
            'Sad': '\uE757',
            'RealEstate': '\uE758',
            'SIPMove': '\uE759',
            'EraseTool': '\uE75C',
            'GripperTool': '\uE75E',
            'Dialpad': '\uE75F',
            'PageLeft': '\uE760',
            'PageRight': '\uE761',
            'MultiSelect': '\uE762',
            'KeyboardClassic': '\uE765',
            'Play': '\uE768',
            'Pause': '\uE769',
            'InkingTool': '\uE76D',
            'Emoji2': '\uE76E',
            'GripperBarHorizontal': '\uE76F',
            'System': '\uE770',
            'Personalize': '\uE771',
            'SearchAndApps': '\uE773',
            'Globe': '\uE774',
            'EaseOfAccess': '\uE776',
            'ContactInfo': '\uE779',
            'Unpin': '\uE77A',
            'Contact': '\uE77B',
            'Memo': '\uE77C',
            'IncomingCall': '\uE77E'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-1.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-1\"",
            src: "url('" + baseUrl + "fabric-icons-1-4d521695.woff') format('woff')"
        },
        icons: {
            'Paste': '\uE77F',
            'WindowsLogo': '\uE782',
            'Error': '\uE783',
            'GripperBarVertical': '\uE784',
            'Unlock': '\uE785',
            'Slideshow': '\uE786',
            'Trim': '\uE78A',
            'AutoEnhanceOn': '\uE78D',
            'AutoEnhanceOff': '\uE78E',
            'Color': '\uE790',
            'SaveAs': '\uE792',
            'Light': '\uE793',
            'Filters': '\uE795',
            'AspectRatio': '\uE799',
            'Contrast': '\uE7A1',
            'Redo': '\uE7A6',
            'Crop': '\uE7A8',
            'PhotoCollection': '\uE7AA',
            'Album': '\uE7AB',
            'Rotate': '\uE7AD',
            'PanoIndicator': '\uE7B0',
            'Translate': '\uE7B2',
            'RedEye': '\uE7B3',
            'ViewOriginal': '\uE7B4',
            'ThumbnailView': '\uE7B6',
            'Package': '\uE7B8',
            'Telemarketer': '\uE7B9',
            'Warning': '\uE7BA',
            'Financial': '\uE7BB',
            'Education': '\uE7BE',
            'ShoppingCart': '\uE7BF',
            'Train': '\uE7C0',
            'Move': '\uE7C2',
            'TouchPointer': '\uE7C9',
            'Merge': '\uE7D5',
            'TurnRight': '\uE7DB',
            'Ferry': '\uE7E3',
            'Highlight': '\uE7E6',
            'PowerButton': '\uE7E8',
            'Tab': '\uE7E9',
            'Admin': '\uE7EF',
            'TVMonitor': '\uE7F4',
            'Speakers': '\uE7F5',
            'Game': '\uE7FC',
            'HorizontalTabKey': '\uE7FD',
            'UnstackSelected': '\uE7FE',
            'StackIndicator': '\uE7FF',
            'Nav2DMapView': '\uE800',
            'StreetsideSplitMinimize': '\uE802',
            'Car': '\uE804',
            'Bus': '\uE806',
            'EatDrink': '\uE807',
            'SeeDo': '\uE808',
            'LocationCircle': '\uE80E',
            'Home': '\uE80F',
            'SwitcherStartEnd': '\uE810',
            'ParkingLocation': '\uE811',
            'IncidentTriangle': '\uE814',
            'Touch': '\uE815',
            'MapDirections': '\uE816',
            'CaretHollow': '\uE817',
            'CaretSolid': '\uE818',
            'History': '\uE81C',
            'Location': '\uE81D',
            'MapLayers': '\uE81E',
            'SearchNearby': '\uE820',
            'Work': '\uE821',
            'Recent': '\uE823',
            'Hotel': '\uE824',
            'Bank': '\uE825',
            'LocationDot': '\uE827',
            'Dictionary': '\uE82D',
            'ChromeBack': '\uE830',
            'FolderOpen': '\uE838',
            'PinnedFill': '\uE842',
            'RevToggleKey': '\uE845',
            'USB': '\uE88E',
            'Previous': '\uE892',
            'Next': '\uE893',
            'Sync': '\uE895',
            'Help': '\uE897',
            'Emoji': '\uE899',
            'MailForward': '\uE89C',
            'ClosePane': '\uE89F',
            'OpenPane': '\uE8A0',
            'PreviewLink': '\uE8A1',
            'ZoomIn': '\uE8A3',
            'Bookmarks': '\uE8A4',
            'Document': '\uE8A5',
            'ProtectedDocument': '\uE8A6',
            'OpenInNewWindow': '\uE8A7',
            'MailFill': '\uE8A8',
            'ViewAll': '\uE8A9',
            'Switch': '\uE8AB',
            'Rename': '\uE8AC',
            'Go': '\uE8AD',
            'Remote': '\uE8AF',
            'SelectAll': '\uE8B3',
            'Orientation': '\uE8B4',
            'Import': '\uE8B5'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-10.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-10\"",
            src: "url('" + baseUrl + "fabric-icons-10-c4ded8e4.woff') format('woff')"
        },
        icons: {
            'ViewListGroup': '\uF248',
            'ViewListTree': '\uF249',
            'TriggerAuto': '\uF24A',
            'TriggerUser': '\uF24B',
            'PivotChart': '\uF24C',
            'StackedBarChart': '\uF24D',
            'StackedLineChart': '\uF24E',
            'BuildQueue': '\uF24F',
            'BuildQueueNew': '\uF250',
            'UserFollowed': '\uF25C',
            'ContactLink': '\uF25F',
            'Stack': '\uF26F',
            'Bullseye': '\uF272',
            'VennDiagram': '\uF273',
            'FiveTileGrid': '\uF274',
            'FocalPoint': '\uF277',
            'Insert': '\uF278',
            'RingerRemove': '\uF279',
            'TeamsLogoInverse': '\uF27A',
            'TeamsLogo': '\uF27B',
            'TeamsLogoFill': '\uF27C',
            'SkypeForBusinessLogoFill': '\uF27D',
            'SharepointLogo': '\uF27E',
            'SharepointLogoFill': '\uF27F',
            'DelveLogo': '\uF280',
            'DelveLogoFill': '\uF281',
            'OfficeVideoLogo': '\uF282',
            'OfficeVideoLogoFill': '\uF283',
            'ExchangeLogo': '\uF284',
            'ExchangeLogoFill': '\uF285',
            'Signin': '\uF286',
            'DocumentApproval': '\uF28B',
            'CloneToDesktop': '\uF28C',
            'InstallToDrive': '\uF28D',
            'Blur': '\uF28E',
            'Build': '\uF28F',
            'ProcessMetaTask': '\uF290',
            'BranchFork2': '\uF291',
            'BranchLocked': '\uF292',
            'BranchCommit': '\uF293',
            'BranchCompare': '\uF294',
            'BranchMerge': '\uF295',
            'BranchPullRequest': '\uF296',
            'BranchSearch': '\uF297',
            'BranchShelveset': '\uF298',
            'RawSource': '\uF299',
            'MergeDuplicate': '\uF29A',
            'RowsGroup': '\uF29B',
            'RowsChild': '\uF29C',
            'Deploy': '\uF29D',
            'Redeploy': '\uF29E',
            'ServerEnviroment': '\uF29F',
            'VisioDiagram': '\uF2A0',
            'HighlightMappedShapes': '\uF2A1',
            'TextCallout': '\uF2A2',
            'IconSetsFlag': '\uF2A4',
            'VisioLogo': '\uF2A7',
            'VisioLogoFill': '\uF2A8',
            'VisioDocument': '\uF2A9',
            'TimelineProgress': '\uF2AA',
            'TimelineDelivery': '\uF2AB',
            'Backlog': '\uF2AC',
            'TeamFavorite': '\uF2AD',
            'TaskGroup': '\uF2AE',
            'TaskGroupMirrored': '\uF2AF',
            'ScopeTemplate': '\uF2B0',
            'AssessmentGroupTemplate': '\uF2B1',
            'NewTeamProject': '\uF2B2',
            'CommentAdd': '\uF2B3',
            'CommentNext': '\uF2B4',
            'CommentPrevious': '\uF2B5',
            'ShopServer': '\uF2B6',
            'LocaleLanguage': '\uF2B7',
            'QueryList': '\uF2B8',
            'UserSync': '\uF2B9',
            'UserPause': '\uF2BA',
            'StreamingOff': '\uF2BB',
            'ArrowTallUpLeft': '\uF2BD',
            'ArrowTallUpRight': '\uF2BE',
            'ArrowTallDownLeft': '\uF2BF',
            'ArrowTallDownRight': '\uF2C0',
            'FieldEmpty': '\uF2C1',
            'FieldFilled': '\uF2C2',
            'FieldChanged': '\uF2C3',
            'FieldNotChanged': '\uF2C4',
            'RingerOff': '\uF2C5',
            'PlayResume': '\uF2C6',
            'BulletedList2': '\uF2C7',
            'BulletedList2Mirrored': '\uF2C8',
            'ImageCrosshair': '\uF2C9',
            'GitGraph': '\uF2CA',
            'Repo': '\uF2CB',
            'RepoSolid': '\uF2CC',
            'FolderQuery': '\uF2CD',
            'FolderList': '\uF2CE',
            'FolderListMirrored': '\uF2CF',
            'LocationOutline': '\uF2D0',
            'POISolid': '\uF2D1',
            'CalculatorNotEqualTo': '\uF2D2',
            'BoxSubtractSolid': '\uF2D3'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-11.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-11\"",
            src: "url('" + baseUrl + "fabric-icons-11-2a8393d6.woff') format('woff')"
        },
        icons: {
            'BoxAdditionSolid': '\uF2D4',
            'BoxMultiplySolid': '\uF2D5',
            'BoxPlaySolid': '\uF2D6',
            'BoxCheckmarkSolid': '\uF2D7',
            'CirclePauseSolid': '\uF2D8',
            'CirclePause': '\uF2D9',
            'MSNVideosSolid': '\uF2DA',
            'CircleStopSolid': '\uF2DB',
            'CircleStop': '\uF2DC',
            'NavigateBack': '\uF2DD',
            'NavigateBackMirrored': '\uF2DE',
            'NavigateForward': '\uF2DF',
            'NavigateForwardMirrored': '\uF2E0',
            'UnknownSolid': '\uF2E1',
            'UnknownMirroredSolid': '\uF2E2',
            'CircleAddition': '\uF2E3',
            'CircleAdditionSolid': '\uF2E4',
            'FilePDB': '\uF2E5',
            'FileTemplate': '\uF2E6',
            'FileSQL': '\uF2E7',
            'FileJAVA': '\uF2E8',
            'FileASPX': '\uF2E9',
            'FileCSS': '\uF2EA',
            'FileSass': '\uF2EB',
            'FileLess': '\uF2EC',
            'FileHTML': '\uF2ED',
            'JavaScriptLanguage': '\uF2EE',
            'CSharpLanguage': '\uF2EF',
            'CSharp': '\uF2F0',
            'VisualBasicLanguage': '\uF2F1',
            'VB': '\uF2F2',
            'CPlusPlusLanguage': '\uF2F3',
            'CPlusPlus': '\uF2F4',
            'FSharpLanguage': '\uF2F5',
            'FSharp': '\uF2F6',
            'TypeScriptLanguage': '\uF2F7',
            'PythonLanguage': '\uF2F8',
            'PY': '\uF2F9',
            'CoffeeScript': '\uF2FA',
            'MarkDownLanguage': '\uF2FB',
            'FullWidth': '\uF2FE',
            'FullWidthEdit': '\uF2FF',
            'Plug': '\uF300',
            'PlugSolid': '\uF301',
            'PlugConnected': '\uF302',
            'PlugDisconnected': '\uF303',
            'UnlockSolid': '\uF304',
            'Variable': '\uF305',
            'Parameter': '\uF306',
            'CommentUrgent': '\uF307',
            'Storyboard': '\uF308',
            'DiffInline': '\uF309',
            'DiffSideBySide': '\uF30A',
            'ImageDiff': '\uF30B',
            'ImagePixel': '\uF30C',
            'FileBug': '\uF30D',
            'FileCode': '\uF30E',
            'FileComment': '\uF30F',
            'BusinessHoursSign': '\uF310',
            'FileImage': '\uF311',
            'FileSymlink': '\uF312',
            'AutoFillTemplate': '\uF313',
            'WorkItem': '\uF314',
            'WorkItemBug': '\uF315',
            'LogRemove': '\uF316',
            'ColumnOptions': '\uF317',
            'Packages': '\uF318',
            'BuildIssue': '\uF319',
            'AssessmentGroup': '\uF31A',
            'VariableGroup': '\uF31B',
            'FullHistory': '\uF31C',
            'Wheelchair': '\uF31F',
            'SingleColumnEdit': '\uF321',
            'DoubleColumnEdit': '\uF322',
            'TripleColumnEdit': '\uF323',
            'ColumnLeftTwoThirdsEdit': '\uF324',
            'ColumnRightTwoThirdsEdit': '\uF325',
            'StreamLogo': '\uF329',
            'PassiveAuthentication': '\uF32A',
            'AlertSolid': '\uF331',
            'MegaphoneSolid': '\uF332',
            'TaskSolid': '\uF333',
            'ConfigurationSolid': '\uF334',
            'BugSolid': '\uF335',
            'CrownSolid': '\uF336',
            'Trophy2Solid': '\uF337',
            'QuickNoteSolid': '\uF338',
            'ConstructionConeSolid': '\uF339',
            'PageListSolid': '\uF33A',
            'PageListMirroredSolid': '\uF33B',
            'StarburstSolid': '\uF33C',
            'ReadingModeSolid': '\uF33D',
            'SadSolid': '\uF33E',
            'HealthSolid': '\uF33F',
            'ShieldSolid': '\uF340',
            'GiftBoxSolid': '\uF341',
            'ShoppingCartSolid': '\uF342',
            'MailSolid': '\uF343',
            'ChatSolid': '\uF344',
            'RibbonSolid': '\uF345'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-12.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-12\"",
            src: "url('" + baseUrl + "fabric-icons-12-7e945a1e.woff') format('woff')"
        },
        icons: {
            'FinancialSolid': '\uF346',
            'FinancialMirroredSolid': '\uF347',
            'HeadsetSolid': '\uF348',
            'PermissionsSolid': '\uF349',
            'ParkingSolid': '\uF34A',
            'ParkingMirroredSolid': '\uF34B',
            'DiamondSolid': '\uF34C',
            'AsteriskSolid': '\uF34D',
            'OfflineStorageSolid': '\uF34E',
            'BankSolid': '\uF34F',
            'DecisionSolid': '\uF350',
            'Parachute': '\uF351',
            'ParachuteSolid': '\uF352',
            'FiltersSolid': '\uF353',
            'ColorSolid': '\uF354',
            'ReviewSolid': '\uF355',
            'ReviewRequestSolid': '\uF356',
            'ReviewRequestMirroredSolid': '\uF357',
            'ReviewResponseSolid': '\uF358',
            'FeedbackRequestSolid': '\uF359',
            'FeedbackRequestMirroredSolid': '\uF35A',
            'FeedbackResponseSolid': '\uF35B',
            'WorkItemBar': '\uF35C',
            'WorkItemBarSolid': '\uF35D',
            'Separator': '\uF35E',
            'NavigateExternalInline': '\uF35F',
            'PlanView': '\uF360',
            'TimelineMatrixView': '\uF361',
            'EngineeringGroup': '\uF362',
            'ProjectCollection': '\uF363',
            'CaretBottomRightCenter8': '\uF364',
            'CaretBottomLeftCenter8': '\uF365',
            'CaretTopRightCenter8': '\uF366',
            'CaretTopLeftCenter8': '\uF367',
            'DonutChart': '\uF368',
            'ChevronUnfold10': '\uF369',
            'ChevronFold10': '\uF36A',
            'DoubleChevronDown8': '\uF36B',
            'DoubleChevronUp8': '\uF36C',
            'DoubleChevronLeft8': '\uF36D',
            'DoubleChevronRight8': '\uF36E',
            'ChevronDownEnd6': '\uF36F',
            'ChevronUpEnd6': '\uF370',
            'ChevronLeftEnd6': '\uF371',
            'ChevronRightEnd6': '\uF372',
            'ContextMenu': '\uF37C',
            'AzureAPIManagement': '\uF37F',
            'AzureServiceEndpoint': '\uF380',
            'VSTSLogo': '\uF381',
            'VSTSAltLogo1': '\uF382',
            'VSTSAltLogo2': '\uF383',
            'FileTypeSolution': '\uF387',
            'WordLogoInverse16': '\uF390',
            'WordLogo16': '\uF391',
            'WordLogoFill16': '\uF392',
            'PowerPointLogoInverse16': '\uF393',
            'PowerPointLogo16': '\uF394',
            'PowerPointLogoFill16': '\uF395',
            'ExcelLogoInverse16': '\uF396',
            'ExcelLogo16': '\uF397',
            'ExcelLogoFill16': '\uF398',
            'OneNoteLogoInverse16': '\uF399',
            'OneNoteLogo16': '\uF39A',
            'OneNoteLogoFill16': '\uF39B',
            'OutlookLogoInverse16': '\uF39C',
            'OutlookLogo16': '\uF39D',
            'OutlookLogoFill16': '\uF39E',
            'PublisherLogoInverse16': '\uF39F',
            'PublisherLogo16': '\uF3A0',
            'PublisherLogoFill16': '\uF3A1',
            'VisioLogoInverse16': '\uF3A2',
            'VisioLogo16': '\uF3A3',
            'VisioLogoFill16': '\uF3A4',
            'TestBeaker': '\uF3A5',
            'TestBeakerSolid': '\uF3A6',
            'TestExploreSolid': '\uF3A7',
            'TestAutoSolid': '\uF3A8',
            'TestUserSolid': '\uF3A9',
            'TestImpactSolid': '\uF3AA',
            'TestPlan': '\uF3AB',
            'TestStep': '\uF3AC',
            'TestParameter': '\uF3AD',
            'TestSuite': '\uF3AE',
            'TestCase': '\uF3AF',
            'Sprint': '\uF3B0',
            'SignOut': '\uF3B1',
            'TriggerApproval': '\uF3B2',
            'Rocket': '\uF3B3',
            'AzureKeyVault': '\uF3B4',
            'Onboarding': '\uF3BA',
            'Transition': '\uF3BC',
            'LikeSolid': '\uF3BF',
            'DislikeSolid': '\uF3C0',
            'CRMCustomerInsightsApp': '\uF3C8',
            'EditCreate': '\uF3C9',
            'PlayReverseResume': '\uF3E4',
            'PlayReverse': '\uF3E5',
            'SearchData': '\uF3F1',
            'UnSetColor': '\uF3F9',
            'DeclineCall': '\uF405'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-13.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-13\"",
            src: "url('" + baseUrl + "fabric-icons-13-c3989a02.woff') format('woff')"
        },
        icons: {
            'RectangularClipping': '\uF407',
            'TeamsLogo16': '\uF40A',
            'TeamsLogoFill16': '\uF40B',
            'Spacer': '\uF40D',
            'SkypeLogo16': '\uF40E',
            'SkypeForBusinessLogo16': '\uF40F',
            'SkypeForBusinessLogoFill16': '\uF410',
            'FilterSolid': '\uF412',
            'MailUndelivered': '\uF415',
            'MailTentative': '\uF416',
            'MailTentativeMirrored': '\uF417',
            'MailReminder': '\uF418',
            'ReceiptUndelivered': '\uF419',
            'ReceiptTentative': '\uF41A',
            'ReceiptTentativeMirrored': '\uF41B',
            'Inbox': '\uF41C',
            'IRMReply': '\uF41D',
            'IRMReplyMirrored': '\uF41E',
            'IRMForward': '\uF41F',
            'IRMForwardMirrored': '\uF420',
            'VoicemailIRM': '\uF421',
            'EventAccepted': '\uF422',
            'EventTentative': '\uF423',
            'EventTentativeMirrored': '\uF424',
            'EventDeclined': '\uF425',
            'IDBadge': '\uF427',
            'BackgroundColor': '\uF42B',
            'OfficeFormsLogoInverse16': '\uF433',
            'OfficeFormsLogo': '\uF434',
            'OfficeFormsLogoFill': '\uF435',
            'OfficeFormsLogo16': '\uF436',
            'OfficeFormsLogoFill16': '\uF437',
            'OfficeFormsLogoInverse24': '\uF43A',
            'OfficeFormsLogo24': '\uF43B',
            'OfficeFormsLogoFill24': '\uF43C',
            'PageLock': '\uF43F',
            'NotExecuted': '\uF440',
            'NotImpactedSolid': '\uF441',
            'FieldReadOnly': '\uF442',
            'FieldRequired': '\uF443',
            'BacklogBoard': '\uF444',
            'ExternalBuild': '\uF445',
            'ExternalTFVC': '\uF446',
            'ExternalXAML': '\uF447',
            'IssueSolid': '\uF448',
            'DefectSolid': '\uF449',
            'LadybugSolid': '\uF44A',
            'NugetLogo': '\uF44C',
            'TFVCLogo': '\uF44D',
            'ProjectLogo32': '\uF47E',
            'ProjectLogoFill32': '\uF47F',
            'ProjectLogo16': '\uF480',
            'ProjectLogoFill16': '\uF481',
            'SwayLogo32': '\uF482',
            'SwayLogoFill32': '\uF483',
            'SwayLogo16': '\uF484',
            'SwayLogoFill16': '\uF485',
            'ClassNotebookLogo32': '\uF486',
            'ClassNotebookLogoFill32': '\uF487',
            'ClassNotebookLogo16': '\uF488',
            'ClassNotebookLogoFill16': '\uF489',
            'ClassNotebookLogoInverse32': '\uF48A',
            'ClassNotebookLogoInverse16': '\uF48B',
            'StaffNotebookLogo32': '\uF48C',
            'StaffNotebookLogoFill32': '\uF48D',
            'StaffNotebookLogo16': '\uF48E',
            'StaffNotebookLogoFill16': '\uF48F',
            'StaffNotebookLogoInverted32': '\uF490',
            'StaffNotebookLogoInverted16': '\uF491',
            'KaizalaLogo': '\uF492',
            'TaskLogo': '\uF493',
            'ProtectionCenterLogo32': '\uF494',
            'GallatinLogo': '\uF496',
            'Globe2': '\uF49A',
            'Guitar': '\uF49B',
            'Breakfast': '\uF49C',
            'Brunch': '\uF49D',
            'BeerMug': '\uF49E',
            'Vacation': '\uF49F',
            'Teeth': '\uF4A0',
            'Taxi': '\uF4A1',
            'Chopsticks': '\uF4A2',
            'SyncOccurence': '\uF4A3',
            'UnsyncOccurence': '\uF4A4',
            'GIF': '\uF4A9',
            'PrimaryCalendar': '\uF4AE',
            'SearchCalendar': '\uF4AF',
            'VideoOff': '\uF4B0',
            'MicrosoftFlowLogo': '\uF4B1',
            'BusinessCenterLogo': '\uF4B2',
            'ToDoLogoBottom': '\uF4B3',
            'ToDoLogoTop': '\uF4B4',
            'EditSolid12': '\uF4B5',
            'EditSolidMirrored12': '\uF4B6',
            'UneditableSolid12': '\uF4B7',
            'UneditableSolidMirrored12': '\uF4B8',
            'UneditableMirrored': '\uF4B9',
            'AdminALogo32': '\uF4BA',
            'AdminALogoFill32': '\uF4BB',
            'ToDoLogoInverse': '\uF4BC'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-14.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-14\"",
            src: "url('" + baseUrl + "fabric-icons-14-5cf58db8.woff') format('woff')"
        },
        icons: {
            'Snooze': '\uF4BD',
            'WaffleOffice365': '\uF4E0',
            'ImageSearch': '\uF4E8',
            'NewsSearch': '\uF4E9',
            'VideoSearch': '\uF4EA',
            'R': '\uF4EB',
            'FontColorA': '\uF4EC',
            'FontColorSwatch': '\uF4ED',
            'LightWeight': '\uF4EE',
            'NormalWeight': '\uF4EF',
            'SemiboldWeight': '\uF4F0',
            'GroupObject': '\uF4F1',
            'UngroupObject': '\uF4F2',
            'AlignHorizontalLeft': '\uF4F3',
            'AlignHorizontalCenter': '\uF4F4',
            'AlignHorizontalRight': '\uF4F5',
            'AlignVerticalTop': '\uF4F6',
            'AlignVerticalCenter': '\uF4F7',
            'AlignVerticalBottom': '\uF4F8',
            'HorizontalDistributeCenter': '\uF4F9',
            'VerticalDistributeCenter': '\uF4FA',
            'Ellipse': '\uF4FB',
            'Line': '\uF4FC',
            'Octagon': '\uF4FD',
            'Hexagon': '\uF4FE',
            'Pentagon': '\uF4FF',
            'RightTriangle': '\uF500',
            'HalfCircle': '\uF501',
            'QuarterCircle': '\uF502',
            'ThreeQuarterCircle': '\uF503',
            '6PointStar': '\uF504',
            '12PointStar': '\uF505',
            'ArrangeBringToFront': '\uF506',
            'ArrangeSendToBack': '\uF507',
            'ArrangeSendBackward': '\uF508',
            'ArrangeBringForward': '\uF509',
            'BorderDash': '\uF50A',
            'BorderDot': '\uF50B',
            'LineStyle': '\uF50C',
            'LineThickness': '\uF50D',
            'WindowEdit': '\uF50E',
            'HintText': '\uF50F',
            'MediaAdd': '\uF510',
            'AnchorLock': '\uF511',
            'AutoHeight': '\uF512',
            'ChartSeries': '\uF513',
            'ChartXAngle': '\uF514',
            'ChartYAngle': '\uF515',
            'Combobox': '\uF516',
            'LineSpacing': '\uF517',
            'Padding': '\uF518',
            'PaddingTop': '\uF519',
            'PaddingBottom': '\uF51A',
            'PaddingLeft': '\uF51B',
            'PaddingRight': '\uF51C',
            'NavigationFlipper': '\uF51D',
            'AlignJustify': '\uF51E',
            'TextOverflow': '\uF51F',
            'VisualsFolder': '\uF520',
            'VisualsStore': '\uF521',
            'PictureCenter': '\uF522',
            'PictureFill': '\uF523',
            'PicturePosition': '\uF524',
            'PictureStretch': '\uF525',
            'PictureTile': '\uF526',
            'Slider': '\uF527',
            'SliderHandleSize': '\uF528',
            'DefaultRatio': '\uF529',
            'NumberSequence': '\uF52A',
            'GUID': '\uF52B',
            'ReportAdd': '\uF52C',
            'DashboardAdd': '\uF52D',
            'MapPinSolid': '\uF52E',
            'WebPublish': '\uF52F',
            'PieSingleSolid': '\uF530',
            'BlockedSolid': '\uF531',
            'DrillDown': '\uF532',
            'DrillDownSolid': '\uF533',
            'DrillExpand': '\uF534',
            'DrillShow': '\uF535',
            'SpecialEvent': '\uF536',
            'OneDriveFolder16': '\uF53B',
            'FunctionalManagerDashboard': '\uF542',
            'BIDashboard': '\uF543',
            'CodeEdit': '\uF544',
            'RenewalCurrent': '\uF545',
            'RenewalFuture': '\uF546',
            'SplitObject': '\uF547',
            'BulkUpload': '\uF548',
            'DownloadDocument': '\uF549',
            'GreetingCard': '\uF54B',
            'Flower': '\uF54E',
            'WaitlistConfirm': '\uF550',
            'WaitlistConfirmMirrored': '\uF551',
            'LaptopSecure': '\uF552',
            'DragObject': '\uF553',
            'EntryView': '\uF554',
            'EntryDecline': '\uF555',
            'ContactCardSettings': '\uF556',
            'ContactCardSettingsMirrored': '\uF557'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-15.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-15\"",
            src: "url('" + baseUrl + "fabric-icons-15-3807251b.woff') format('woff')"
        },
        icons: {
            'CalendarSettings': '\uF558',
            'CalendarSettingsMirrored': '\uF559',
            'HardDriveLock': '\uF55A',
            'HardDriveUnlock': '\uF55B',
            'AccountManagement': '\uF55C',
            'ReportWarning': '\uF569',
            'TransitionPop': '\uF5B2',
            'TransitionPush': '\uF5B3',
            'TransitionEffect': '\uF5B4',
            'LookupEntities': '\uF5B5',
            'ExploreData': '\uF5B6',
            'AddBookmark': '\uF5B7',
            'SearchBookmark': '\uF5B8',
            'DrillThrough': '\uF5B9',
            'MasterDatabase': '\uF5BA',
            'CertifiedDatabase': '\uF5BB',
            'MaximumValue': '\uF5BC',
            'MinimumValue': '\uF5BD',
            'VisualStudioIDELogo32': '\uF5D0',
            'PasteAsText': '\uF5D5',
            'PasteAsCode': '\uF5D6',
            'BrowserTab': '\uF5D7',
            'BrowserTabScreenshot': '\uF5D8',
            'DesktopScreenshot': '\uF5D9',
            'FileYML': '\uF5DA',
            'ClipboardSolid': '\uF5DC',
            'FabricUserFolder': '\uF5E5',
            'FabricNetworkFolder': '\uF5E6',
            'BullseyeTarget': '\uF5F0',
            'AnalyticsView': '\uF5F1',
            'Video360Generic': '\uF609',
            'Untag': '\uF60B',
            'Leave': '\uF627',
            'Trending12': '\uF62D',
            'Blocked12': '\uF62E',
            'Warning12': '\uF62F',
            'CheckedOutByOther12': '\uF630',
            'CheckedOutByYou12': '\uF631',
            'CircleShapeSolid': '\uF63C',
            'SquareShapeSolid': '\uF63D',
            'TriangleShapeSolid': '\uF63E',
            'DropShapeSolid': '\uF63F',
            'RectangleShapeSolid': '\uF640',
            'ZoomToFit': '\uF649',
            'InsertColumnsLeft': '\uF64A',
            'InsertColumnsRight': '\uF64B',
            'InsertRowsAbove': '\uF64C',
            'InsertRowsBelow': '\uF64D',
            'DeleteColumns': '\uF64E',
            'DeleteRows': '\uF64F',
            'DeleteRowsMirrored': '\uF650',
            'DeleteTable': '\uF651',
            'AccountBrowser': '\uF652',
            'VersionControlPush': '\uF664',
            'StackedColumnChart2': '\uF666',
            'TripleColumnWide': '\uF66E',
            'QuadColumn': '\uF66F',
            'WhiteBoardApp16': '\uF673',
            'WhiteBoardApp32': '\uF674',
            'PinnedSolid': '\uF676',
            'InsertSignatureLine': '\uF677',
            'ArrangeByFrom': '\uF678',
            'Phishing': '\uF679',
            'CreateMailRule': '\uF67A',
            'PublishCourse': '\uF699',
            'DictionaryRemove': '\uF69A',
            'UserRemove': '\uF69B',
            'UserEvent': '\uF69C',
            'Encryption': '\uF69D',
            'PasswordField': '\uF6AA',
            'OpenInNewTab': '\uF6AB',
            'Hide3': '\uF6AC',
            'VerifiedBrandSolid': '\uF6AD',
            'MarkAsProtected': '\uF6AE',
            'AuthenticatorApp': '\uF6B1',
            'WebTemplate': '\uF6B2',
            'DefenderTVM': '\uF6B3',
            'MedalSolid': '\uF6B9',
            'D365TalentLearn': '\uF6BB',
            'D365TalentInsight': '\uF6BC',
            'D365TalentHRCore': '\uF6BD',
            'BacklogList': '\uF6BF',
            'ButtonControl': '\uF6C0',
            'TableGroup': '\uF6D9',
            'MountainClimbing': '\uF6DB',
            'TagUnknown': '\uF6DF',
            'TagUnknownMirror': '\uF6E0',
            'TagUnknown12': '\uF6E1',
            'TagUnknown12Mirror': '\uF6E2',
            'Link12': '\uF6E3',
            'Presentation': '\uF6E4',
            'Presentation12': '\uF6E5',
            'Lock12': '\uF6E6',
            'BuildDefinition': '\uF6E9',
            'ReleaseDefinition': '\uF6EA',
            'SaveTemplate': '\uF6EC',
            'UserGauge': '\uF6ED',
            'BlockedSiteSolid12': '\uF70A',
            'TagSolid': '\uF70E',
            'OfficeChat': '\uF70F'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-16.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-16\"",
            src: "url('" + baseUrl + "fabric-icons-16-9cf93f3b.woff') format('woff')"
        },
        icons: {
            'OfficeChatSolid': '\uF710',
            'MailSchedule': '\uF72E',
            'WarningSolid': '\uF736',
            'Blocked2Solid': '\uF737',
            'SkypeCircleArrow': '\uF747',
            'SkypeArrow': '\uF748',
            'SyncStatus': '\uF751',
            'SyncStatusSolid': '\uF752',
            'ProjectDocument': '\uF759',
            'ToDoLogoOutline': '\uF75B',
            'VisioOnlineLogoFill32': '\uF75F',
            'VisioOnlineLogo32': '\uF760',
            'VisioOnlineLogoCloud32': '\uF761',
            'VisioDiagramSync': '\uF762',
            'Event12': '\uF763',
            'EventDateMissed12': '\uF764',
            'UserOptional': '\uF767',
            'ResponsesMenu': '\uF768',
            'DoubleDownArrow': '\uF769',
            'DistributeDown': '\uF76A',
            'BookmarkReport': '\uF76B',
            'FilterSettings': '\uF76C',
            'GripperDotsVertical': '\uF772',
            'MailAttached': '\uF774',
            'AddIn': '\uF775',
            'LinkedDatabase': '\uF779',
            'TableLink': '\uF77A',
            'PromotedDatabase': '\uF77D',
            'BarChartVerticalFilter': '\uF77E',
            'BarChartVerticalFilterSolid': '\uF77F',
            'MicOff2': '\uF781',
            'MicrosoftTranslatorLogo': '\uF782',
            'ShowTimeAs': '\uF787',
            'FileRequest': '\uF789',
            'WorkItemAlert': '\uF78F',
            'PowerBILogo16': '\uF790',
            'PowerBILogoBackplate16': '\uF791',
            'BulletedListText': '\uF792',
            'BulletedListBullet': '\uF793',
            'BulletedListTextMirrored': '\uF794',
            'BulletedListBulletMirrored': '\uF795',
            'NumberedListText': '\uF796',
            'NumberedListNumber': '\uF797',
            'NumberedListTextMirrored': '\uF798',
            'NumberedListNumberMirrored': '\uF799',
            'RemoveLinkChain': '\uF79A',
            'RemoveLinkX': '\uF79B',
            'FabricTextHighlight': '\uF79C',
            'ClearFormattingA': '\uF79D',
            'ClearFormattingEraser': '\uF79E',
            'Photo2Fill': '\uF79F',
            'IncreaseIndentText': '\uF7A0',
            'IncreaseIndentArrow': '\uF7A1',
            'DecreaseIndentText': '\uF7A2',
            'DecreaseIndentArrow': '\uF7A3',
            'IncreaseIndentTextMirrored': '\uF7A4',
            'IncreaseIndentArrowMirrored': '\uF7A5',
            'DecreaseIndentTextMirrored': '\uF7A6',
            'DecreaseIndentArrowMirrored': '\uF7A7',
            'CheckListText': '\uF7A8',
            'CheckListCheck': '\uF7A9',
            'CheckListTextMirrored': '\uF7AA',
            'CheckListCheckMirrored': '\uF7AB',
            'NumberSymbol': '\uF7AC',
            'Coupon': '\uF7BC',
            'VerifiedBrand': '\uF7BD',
            'ReleaseGate': '\uF7BE',
            'ReleaseGateCheck': '\uF7BF',
            'ReleaseGateError': '\uF7C0',
            'M365InvoicingLogo': '\uF7C1',
            'RemoveFromShoppingList': '\uF7D5',
            'ShieldAlert': '\uF7D7',
            'FabricTextHighlightComposite': '\uF7DA',
            'Dataflows': '\uF7DD',
            'GenericScanFilled': '\uF7DE',
            'DiagnosticDataBarTooltip': '\uF7DF',
            'SaveToMobile': '\uF7E0',
            'Orientation2': '\uF7E1',
            'ScreenCast': '\uF7E2',
            'ShowGrid': '\uF7E3',
            'SnapToGrid': '\uF7E4',
            'ContactList': '\uF7E5',
            'NewMail': '\uF7EA',
            'EyeShadow': '\uF7EB',
            'FabricFolderConfirm': '\uF7FF',
            'InformationBarriers': '\uF803',
            'CommentActive': '\uF804',
            'ColumnVerticalSectionEdit': '\uF806',
            'WavingHand': '\uF807',
            'ShakeDevice': '\uF80A',
            'SmartGlassRemote': '\uF80B',
            'Rotate90Clockwise': '\uF80D',
            'Rotate90CounterClockwise': '\uF80E',
            'CampaignTemplate': '\uF811',
            'ChartTemplate': '\uF812',
            'PageListFilter': '\uF813',
            'SecondaryNav': '\uF814',
            'ColumnVerticalSection': '\uF81E',
            'SkypeCircleSlash': '\uF825',
            'SkypeSlash': '\uF826'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-17.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-17\"",
            src: "url('" + baseUrl + "fabric-icons-17-0c4ed701.woff') format('woff')"
        },
        icons: {
            'CustomizeToolbar': '\uF828',
            'DuplicateRow': '\uF82A',
            'RemoveFromTrash': '\uF82B',
            'MailOptions': '\uF82C',
            'Childof': '\uF82D',
            'Footer': '\uF82E',
            'Header': '\uF82F',
            'BarChartVerticalFill': '\uF830',
            'StackedColumnChart2Fill': '\uF831',
            'PlainText': '\uF834',
            'AccessibiltyChecker': '\uF835',
            'DatabaseSync': '\uF842',
            'ReservationOrders': '\uF845',
            'TabOneColumn': '\uF849',
            'TabTwoColumn': '\uF84A',
            'TabThreeColumn': '\uF84B',
            'BulletedTreeList': '\uF84C',
            'MicrosoftTranslatorLogoGreen': '\uF852',
            'MicrosoftTranslatorLogoBlue': '\uF853',
            'InternalInvestigation': '\uF854',
            'AddReaction': '\uF85D',
            'ContactHeart': '\uF862',
            'VisuallyImpaired': '\uF866',
            'EventToDoLogo': '\uF869',
            'Variable2': '\uF86D',
            'ModelingView': '\uF871',
            'DisconnectVirtualMachine': '\uF873',
            'ReportLock': '\uF875',
            'Uneditable2': '\uF876',
            'Uneditable2Mirrored': '\uF877',
            'BarChartVerticalEdit': '\uF89D',
            'GlobalNavButtonActive': '\uF89F',
            'PollResults': '\uF8A0',
            'Rerun': '\uF8A1',
            'QandA': '\uF8A2',
            'QandAMirror': '\uF8A3',
            'BookAnswers': '\uF8A4',
            'AlertSettings': '\uF8B6',
            'TrimStart': '\uF8BB',
            'TrimEnd': '\uF8BC',
            'TableComputed': '\uF8F5',
            'DecreaseIndentLegacy': '\uE290',
            'IncreaseIndentLegacy': '\uE291',
            'SizeLegacy': '\uE2B2'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-2.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-2\"",
            src: "url('" + baseUrl + "fabric-icons-2-63c99abf.woff') format('woff')"
        },
        icons: {
            'Picture': '\uE8B9',
            'ChromeClose': '\uE8BB',
            'ShowResults': '\uE8BC',
            'Message': '\uE8BD',
            'CalendarDay': '\uE8BF',
            'CalendarWeek': '\uE8C0',
            'MailReplyAll': '\uE8C2',
            'Read': '\uE8C3',
            'Cut': '\uE8C6',
            'PaymentCard': '\uE8C7',
            'Copy': '\uE8C8',
            'Important': '\uE8C9',
            'MailReply': '\uE8CA',
            'GotoToday': '\uE8D1',
            'Font': '\uE8D2',
            'FontColor': '\uE8D3',
            'FolderFill': '\uE8D5',
            'Permissions': '\uE8D7',
            'DisableUpdates': '\uE8D8',
            'Unfavorite': '\uE8D9',
            'Italic': '\uE8DB',
            'Underline': '\uE8DC',
            'Bold': '\uE8DD',
            'MoveToFolder': '\uE8DE',
            'Dislike': '\uE8E0',
            'Like': '\uE8E1',
            'AlignCenter': '\uE8E3',
            'OpenFile': '\uE8E5',
            'ClearSelection': '\uE8E6',
            'FontDecrease': '\uE8E7',
            'FontIncrease': '\uE8E8',
            'FontSize': '\uE8E9',
            'CellPhone': '\uE8EA',
            'RepeatOne': '\uE8ED',
            'RepeatAll': '\uE8EE',
            'Calculator': '\uE8EF',
            'Library': '\uE8F1',
            'PostUpdate': '\uE8F3',
            'NewFolder': '\uE8F4',
            'CalendarReply': '\uE8F5',
            'UnsyncFolder': '\uE8F6',
            'SyncFolder': '\uE8F7',
            'BlockContact': '\uE8F8',
            'Accept': '\uE8FB',
            'BulletedList': '\uE8FD',
            'Preview': '\uE8FF',
            'News': '\uE900',
            'Chat': '\uE901',
            'Group': '\uE902',
            'World': '\uE909',
            'Comment': '\uE90A',
            'DockLeft': '\uE90C',
            'DockRight': '\uE90D',
            'Repair': '\uE90F',
            'Accounts': '\uE910',
            'Street': '\uE913',
            'RadioBullet': '\uE915',
            'Stopwatch': '\uE916',
            'Clock': '\uE917',
            'WorldClock': '\uE918',
            'AlarmClock': '\uE919',
            'Photo': '\uE91B',
            'ActionCenter': '\uE91C',
            'Hospital': '\uE91D',
            'Timer': '\uE91E',
            'FullCircleMask': '\uE91F',
            'LocationFill': '\uE920',
            'ChromeMinimize': '\uE921',
            'ChromeRestore': '\uE923',
            'Annotation': '\uE924',
            'Fingerprint': '\uE928',
            'Handwriting': '\uE929',
            'ChromeFullScreen': '\uE92D',
            'Completed': '\uE930',
            'Label': '\uE932',
            'FlickDown': '\uE935',
            'FlickUp': '\uE936',
            'FlickLeft': '\uE937',
            'FlickRight': '\uE938',
            'MiniExpand': '\uE93A',
            'MiniContract': '\uE93B',
            'Streaming': '\uE93E',
            'MusicInCollection': '\uE940',
            'OneDriveLogo': '\uE941',
            'CompassNW': '\uE942',
            'Code': '\uE943',
            'LightningBolt': '\uE945',
            'CalculatorMultiply': '\uE947',
            'CalculatorAddition': '\uE948',
            'CalculatorSubtract': '\uE949',
            'CalculatorPercentage': '\uE94C',
            'CalculatorEqualTo': '\uE94E',
            'PrintfaxPrinterFile': '\uE956',
            'StorageOptical': '\uE958',
            'Communications': '\uE95A',
            'Headset': '\uE95B',
            'Health': '\uE95E',
            'Webcam2': '\uE960',
            'FrontCamera': '\uE96B',
            'ChevronUpSmall': '\uE96D'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-3.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-3\"",
            src: "url('" + baseUrl + "fabric-icons-3-089e217a.woff') format('woff')"
        },
        icons: {
            'ChevronDownSmall': '\uE96E',
            'ChevronLeftSmall': '\uE96F',
            'ChevronRightSmall': '\uE970',
            'ChevronUpMed': '\uE971',
            'ChevronDownMed': '\uE972',
            'ChevronLeftMed': '\uE973',
            'ChevronRightMed': '\uE974',
            'Devices2': '\uE975',
            'PC1': '\uE977',
            'PresenceChickletVideo': '\uE979',
            'Reply': '\uE97A',
            'HalfAlpha': '\uE97E',
            'ConstructionCone': '\uE98F',
            'DoubleChevronLeftMed': '\uE991',
            'Volume0': '\uE992',
            'Volume1': '\uE993',
            'Volume2': '\uE994',
            'Volume3': '\uE995',
            'Chart': '\uE999',
            'Robot': '\uE99A',
            'Manufacturing': '\uE99C',
            'LockSolid': '\uE9A2',
            'FitPage': '\uE9A6',
            'FitWidth': '\uE9A7',
            'BidiLtr': '\uE9AA',
            'BidiRtl': '\uE9AB',
            'RightDoubleQuote': '\uE9B1',
            'Sunny': '\uE9BD',
            'CloudWeather': '\uE9BE',
            'Cloudy': '\uE9BF',
            'PartlyCloudyDay': '\uE9C0',
            'PartlyCloudyNight': '\uE9C1',
            'ClearNight': '\uE9C2',
            'RainShowersDay': '\uE9C3',
            'Rain': '\uE9C4',
            'Thunderstorms': '\uE9C6',
            'RainSnow': '\uE9C7',
            'Snow': '\uE9C8',
            'BlowingSnow': '\uE9C9',
            'Frigid': '\uE9CA',
            'Fog': '\uE9CB',
            'Squalls': '\uE9CC',
            'Duststorm': '\uE9CD',
            'Unknown': '\uE9CE',
            'Precipitation': '\uE9CF',
            'Ribbon': '\uE9D1',
            'AreaChart': '\uE9D2',
            'Assign': '\uE9D3',
            'FlowChart': '\uE9D4',
            'CheckList': '\uE9D5',
            'Diagnostic': '\uE9D9',
            'Generate': '\uE9DA',
            'LineChart': '\uE9E6',
            'Equalizer': '\uE9E9',
            'BarChartHorizontal': '\uE9EB',
            'BarChartVertical': '\uE9EC',
            'Freezing': '\uE9EF',
            'FunnelChart': '\uE9F1',
            'Processing': '\uE9F5',
            'Quantity': '\uE9F8',
            'ReportDocument': '\uE9F9',
            'StackColumnChart': '\uE9FC',
            'SnowShowerDay': '\uE9FD',
            'HailDay': '\uEA00',
            'WorkFlow': '\uEA01',
            'HourGlass': '\uEA03',
            'StoreLogoMed20': '\uEA04',
            'TimeSheet': '\uEA05',
            'TriangleSolid': '\uEA08',
            'UpgradeAnalysis': '\uEA0B',
            'VideoSolid': '\uEA0C',
            'RainShowersNight': '\uEA0F',
            'SnowShowerNight': '\uEA11',
            'Teamwork': '\uEA12',
            'HailNight': '\uEA13',
            'PeopleAdd': '\uEA15',
            'Glasses': '\uEA16',
            'DateTime2': '\uEA17',
            'Shield': '\uEA18',
            'Header1': '\uEA19',
            'PageAdd': '\uEA1A',
            'NumberedList': '\uEA1C',
            'PowerBILogo': '\uEA1E',
            'Info2': '\uEA1F',
            'MusicInCollectionFill': '\uEA36',
            'Asterisk': '\uEA38',
            'ErrorBadge': '\uEA39',
            'CircleFill': '\uEA3B',
            'Record2': '\uEA3F',
            'AllAppsMirrored': '\uEA40',
            'BookmarksMirrored': '\uEA41',
            'BulletedListMirrored': '\uEA42',
            'CaretHollowMirrored': '\uEA45',
            'CaretSolidMirrored': '\uEA46',
            'ChromeBackMirrored': '\uEA47',
            'ClearSelectionMirrored': '\uEA48',
            'ClosePaneMirrored': '\uEA49',
            'DockLeftMirrored': '\uEA4C',
            'DoubleChevronLeftMedMirrored': '\uEA4D',
            'GoMirrored': '\uEA4F'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-4.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-4\"",
            src: "url('" + baseUrl + "fabric-icons-4-a656cc0a.woff') format('woff')"
        },
        icons: {
            'HelpMirrored': '\uEA51',
            'ImportMirrored': '\uEA52',
            'ImportAllMirrored': '\uEA53',
            'ListMirrored': '\uEA55',
            'MailForwardMirrored': '\uEA56',
            'MailReplyMirrored': '\uEA57',
            'MailReplyAllMirrored': '\uEA58',
            'MiniContractMirrored': '\uEA59',
            'MiniExpandMirrored': '\uEA5A',
            'OpenPaneMirrored': '\uEA5B',
            'ParkingLocationMirrored': '\uEA5E',
            'SendMirrored': '\uEA63',
            'ShowResultsMirrored': '\uEA65',
            'ThumbnailViewMirrored': '\uEA67',
            'Media': '\uEA69',
            'Devices3': '\uEA6C',
            'Focus': '\uEA6F',
            'VideoLightOff': '\uEA74',
            'Lightbulb': '\uEA80',
            'StatusTriangle': '\uEA82',
            'VolumeDisabled': '\uEA85',
            'Puzzle': '\uEA86',
            'EmojiNeutral': '\uEA87',
            'EmojiDisappointed': '\uEA88',
            'HomeSolid': '\uEA8A',
            'Ringer': '\uEA8F',
            'PDF': '\uEA90',
            'HeartBroken': '\uEA92',
            'StoreLogo16': '\uEA96',
            'MultiSelectMirrored': '\uEA98',
            'Broom': '\uEA99',
            'AddToShoppingList': '\uEA9A',
            'Cocktails': '\uEA9D',
            'Wines': '\uEABF',
            'Articles': '\uEAC1',
            'Cycling': '\uEAC7',
            'DietPlanNotebook': '\uEAC8',
            'Pill': '\uEACB',
            'ExerciseTracker': '\uEACC',
            'HandsFree': '\uEAD0',
            'Medical': '\uEAD4',
            'Running': '\uEADA',
            'Weights': '\uEADB',
            'Trackers': '\uEADF',
            'AddNotes': '\uEAE3',
            'AllCurrency': '\uEAE4',
            'BarChart4': '\uEAE7',
            'CirclePlus': '\uEAEE',
            'Coffee': '\uEAEF',
            'Cotton': '\uEAF3',
            'Market': '\uEAFC',
            'Money': '\uEAFD',
            'PieDouble': '\uEB04',
            'PieSingle': '\uEB05',
            'RemoveFilter': '\uEB08',
            'Savings': '\uEB0B',
            'Sell': '\uEB0C',
            'StockDown': '\uEB0F',
            'StockUp': '\uEB11',
            'Lamp': '\uEB19',
            'Source': '\uEB1B',
            'MSNVideos': '\uEB1C',
            'Cricket': '\uEB1E',
            'Golf': '\uEB1F',
            'Baseball': '\uEB20',
            'Soccer': '\uEB21',
            'MoreSports': '\uEB22',
            'AutoRacing': '\uEB24',
            'CollegeHoops': '\uEB25',
            'CollegeFootball': '\uEB26',
            'ProFootball': '\uEB27',
            'ProHockey': '\uEB28',
            'Rugby': '\uEB2D',
            'SubstitutionsIn': '\uEB31',
            'Tennis': '\uEB33',
            'Arrivals': '\uEB34',
            'Design': '\uEB3C',
            'Website': '\uEB41',
            'Drop': '\uEB42',
            'HistoricalWeather': '\uEB43',
            'SkiResorts': '\uEB45',
            'Snowflake': '\uEB46',
            'BusSolid': '\uEB47',
            'FerrySolid': '\uEB48',
            'AirplaneSolid': '\uEB4C',
            'TrainSolid': '\uEB4D',
            'Ticket': '\uEB54',
            'WifiWarning4': '\uEB63',
            'Devices4': '\uEB66',
            'AzureLogo': '\uEB6A',
            'BingLogo': '\uEB6B',
            'MSNLogo': '\uEB6C',
            'OutlookLogoInverse': '\uEB6D',
            'OfficeLogo': '\uEB6E',
            'SkypeLogo': '\uEB6F',
            'Door': '\uEB75',
            'EditMirrored': '\uEB7E',
            'GiftCard': '\uEB8E',
            'DoubleBookmark': '\uEB8F',
            'StatusErrorFull': '\uEB90'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-5.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-5\"",
            src: "url('" + baseUrl + "fabric-icons-5-f95ba260.woff') format('woff')"
        },
        icons: {
            'Certificate': '\uEB95',
            'FastForward': '\uEB9D',
            'Rewind': '\uEB9E',
            'Photo2': '\uEB9F',
            'OpenSource': '\uEBC2',
            'Movers': '\uEBCD',
            'CloudDownload': '\uEBD3',
            'Family': '\uEBDA',
            'WindDirection': '\uEBE6',
            'Bug': '\uEBE8',
            'SiteScan': '\uEBEC',
            'BrowserScreenShot': '\uEBED',
            'F12DevTools': '\uEBEE',
            'CSS': '\uEBEF',
            'JS': '\uEBF0',
            'DeliveryTruck': '\uEBF4',
            'ReminderPerson': '\uEBF7',
            'ReminderGroup': '\uEBF8',
            'ReminderTime': '\uEBF9',
            'TabletMode': '\uEBFC',
            'Umbrella': '\uEC04',
            'NetworkTower': '\uEC05',
            'CityNext': '\uEC06',
            'CityNext2': '\uEC07',
            'Section': '\uEC0C',
            'OneNoteLogoInverse': '\uEC0D',
            'ToggleFilled': '\uEC11',
            'ToggleBorder': '\uEC12',
            'SliderThumb': '\uEC13',
            'ToggleThumb': '\uEC14',
            'Documentation': '\uEC17',
            'Badge': '\uEC1B',
            'Giftbox': '\uEC1F',
            'VisualStudioLogo': '\uEC22',
            'HomeGroup': '\uEC26',
            'ExcelLogoInverse': '\uEC28',
            'WordLogoInverse': '\uEC29',
            'PowerPointLogoInverse': '\uEC2A',
            'Cafe': '\uEC32',
            'SpeedHigh': '\uEC4A',
            'Commitments': '\uEC4D',
            'ThisPC': '\uEC4E',
            'MusicNote': '\uEC4F',
            'MicOff': '\uEC54',
            'PlaybackRate1x': '\uEC57',
            'EdgeLogo': '\uEC60',
            'CompletedSolid': '\uEC61',
            'AlbumRemove': '\uEC62',
            'MessageFill': '\uEC70',
            'TabletSelected': '\uEC74',
            'MobileSelected': '\uEC75',
            'LaptopSelected': '\uEC76',
            'TVMonitorSelected': '\uEC77',
            'DeveloperTools': '\uEC7A',
            'Shapes': '\uEC7C',
            'InsertTextBox': '\uEC7D',
            'LowerBrightness': '\uEC8A',
            'WebComponents': '\uEC8B',
            'OfflineStorage': '\uEC8C',
            'DOM': '\uEC8D',
            'CloudUpload': '\uEC8E',
            'ScrollUpDown': '\uEC8F',
            'DateTime': '\uEC92',
            'Event': '\uECA3',
            'Cake': '\uECA4',
            'Org': '\uECA6',
            'PartyLeader': '\uECA7',
            'DRM': '\uECA8',
            'CloudAdd': '\uECA9',
            'AppIconDefault': '\uECAA',
            'Photo2Add': '\uECAB',
            'Photo2Remove': '\uECAC',
            'Calories': '\uECAD',
            'POI': '\uECAF',
            'AddTo': '\uECC8',
            'RadioBtnOff': '\uECCA',
            'RadioBtnOn': '\uECCB',
            'ExploreContent': '\uECCD',
            'Product': '\uECDC',
            'ProgressLoopInner': '\uECDE',
            'ProgressLoopOuter': '\uECDF',
            'Blocked2': '\uECE4',
            'FangBody': '\uECEB',
            'Toolbox': '\uECED',
            'PageHeader': '\uECEE',
            'ChatInviteFriend': '\uECFE',
            'Brush': '\uECFF',
            'Shirt': '\uED00',
            'Crown': '\uED01',
            'Diamond': '\uED02',
            'ScaleUp': '\uED09',
            'QRCode': '\uED14',
            'Feedback': '\uED15',
            'SharepointLogoInverse': '\uED18',
            'YammerLogo': '\uED19',
            'Hide': '\uED1A',
            'Uneditable': '\uED1D',
            'ReturnToSession': '\uED24',
            'OpenFolderHorizontal': '\uED25',
            'CalendarMirrored': '\uED28'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-6.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-6\"",
            src: "url('" + baseUrl + "fabric-icons-6-ef6fd590.woff') format('woff')"
        },
        icons: {
            'SwayLogoInverse': '\uED29',
            'OutOfOffice': '\uED34',
            'Trophy': '\uED3F',
            'ReopenPages': '\uED50',
            'EmojiTabSymbols': '\uED58',
            'AADLogo': '\uED68',
            'AccessLogo': '\uED69',
            'AdminALogoInverse32': '\uED6A',
            'AdminCLogoInverse32': '\uED6B',
            'AdminDLogoInverse32': '\uED6C',
            'AdminELogoInverse32': '\uED6D',
            'AdminLLogoInverse32': '\uED6E',
            'AdminMLogoInverse32': '\uED6F',
            'AdminOLogoInverse32': '\uED70',
            'AdminPLogoInverse32': '\uED71',
            'AdminSLogoInverse32': '\uED72',
            'AdminYLogoInverse32': '\uED73',
            'DelveLogoInverse': '\uED76',
            'ExchangeLogoInverse': '\uED78',
            'LyncLogo': '\uED79',
            'OfficeVideoLogoInverse': '\uED7A',
            'SocialListeningLogo': '\uED7C',
            'VisioLogoInverse': '\uED7D',
            'Balloons': '\uED7E',
            'Cat': '\uED7F',
            'MailAlert': '\uED80',
            'MailCheck': '\uED81',
            'MailLowImportance': '\uED82',
            'MailPause': '\uED83',
            'MailRepeat': '\uED84',
            'SecurityGroup': '\uED85',
            'Table': '\uED86',
            'VoicemailForward': '\uED87',
            'VoicemailReply': '\uED88',
            'Waffle': '\uED89',
            'RemoveEvent': '\uED8A',
            'EventInfo': '\uED8B',
            'ForwardEvent': '\uED8C',
            'WipePhone': '\uED8D',
            'AddOnlineMeeting': '\uED8E',
            'JoinOnlineMeeting': '\uED8F',
            'RemoveLink': '\uED90',
            'PeopleBlock': '\uED91',
            'PeopleRepeat': '\uED92',
            'PeopleAlert': '\uED93',
            'PeoplePause': '\uED94',
            'TransferCall': '\uED95',
            'AddPhone': '\uED96',
            'UnknownCall': '\uED97',
            'NoteReply': '\uED98',
            'NoteForward': '\uED99',
            'NotePinned': '\uED9A',
            'RemoveOccurrence': '\uED9B',
            'Timeline': '\uED9C',
            'EditNote': '\uED9D',
            'CircleHalfFull': '\uED9E',
            'Room': '\uED9F',
            'Unsubscribe': '\uEDA0',
            'Subscribe': '\uEDA1',
            'HardDrive': '\uEDA2',
            'RecurringTask': '\uEDB2',
            'TaskManager': '\uEDB7',
            'TaskManagerMirrored': '\uEDB8',
            'Combine': '\uEDBB',
            'Split': '\uEDBC',
            'DoubleChevronUp': '\uEDBD',
            'DoubleChevronLeft': '\uEDBE',
            'DoubleChevronRight': '\uEDBF',
            'TextBox': '\uEDC2',
            'TextField': '\uEDC3',
            'NumberField': '\uEDC4',
            'Dropdown': '\uEDC5',
            'PenWorkspace': '\uEDC6',
            'BookingsLogo': '\uEDC7',
            'ClassNotebookLogoInverse': '\uEDC8',
            'DelveAnalyticsLogo': '\uEDCA',
            'DocsLogoInverse': '\uEDCB',
            'Dynamics365Logo': '\uEDCC',
            'DynamicSMBLogo': '\uEDCD',
            'OfficeAssistantLogo': '\uEDCE',
            'OfficeStoreLogo': '\uEDCF',
            'OneNoteEduLogoInverse': '\uEDD0',
            'PlannerLogo': '\uEDD1',
            'PowerApps': '\uEDD2',
            'Suitcase': '\uEDD3',
            'ProjectLogoInverse': '\uEDD4',
            'CaretLeft8': '\uEDD5',
            'CaretRight8': '\uEDD6',
            'CaretUp8': '\uEDD7',
            'CaretDown8': '\uEDD8',
            'CaretLeftSolid8': '\uEDD9',
            'CaretRightSolid8': '\uEDDA',
            'CaretUpSolid8': '\uEDDB',
            'CaretDownSolid8': '\uEDDC',
            'ClearFormatting': '\uEDDD',
            'Superscript': '\uEDDE',
            'Subscript': '\uEDDF',
            'Strikethrough': '\uEDE0',
            'Export': '\uEDE1',
            'ExportMirrored': '\uEDE2'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-7.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-7\"",
            src: "url('" + baseUrl + "fabric-icons-7-2b97bb99.woff') format('woff')"
        },
        icons: {
            'SingleBookmark': '\uEDFF',
            'SingleBookmarkSolid': '\uEE00',
            'DoubleChevronDown': '\uEE04',
            'FollowUser': '\uEE05',
            'ReplyAll': '\uEE0A',
            'WorkforceManagement': '\uEE0F',
            'RecruitmentManagement': '\uEE12',
            'Questionnaire': '\uEE19',
            'ManagerSelfService': '\uEE23',
            'ProductionFloorManagement': '\uEE29',
            'ProductRelease': '\uEE2E',
            'ProductVariant': '\uEE30',
            'ReplyMirrored': '\uEE35',
            'ReplyAllMirrored': '\uEE36',
            'Medal': '\uEE38',
            'AddGroup': '\uEE3D',
            'QuestionnaireMirrored': '\uEE4B',
            'CloudImportExport': '\uEE55',
            'TemporaryUser': '\uEE58',
            'CaretSolid16': '\uEE62',
            'GroupedDescending': '\uEE66',
            'GroupedAscending': '\uEE67',
            'AwayStatus': '\uEE6A',
            'MyMoviesTV': '\uEE6C',
            'GenericScan': '\uEE6F',
            'AustralianRules': '\uEE70',
            'WifiEthernet': '\uEE77',
            'TrackersMirrored': '\uEE92',
            'DateTimeMirrored': '\uEE93',
            'StopSolid': '\uEE95',
            'DoubleChevronUp12': '\uEE96',
            'DoubleChevronDown12': '\uEE97',
            'DoubleChevronLeft12': '\uEE98',
            'DoubleChevronRight12': '\uEE99',
            'CalendarAgenda': '\uEE9A',
            'ConnectVirtualMachine': '\uEE9D',
            'AddEvent': '\uEEB5',
            'AssetLibrary': '\uEEB6',
            'DataConnectionLibrary': '\uEEB7',
            'DocLibrary': '\uEEB8',
            'FormLibrary': '\uEEB9',
            'FormLibraryMirrored': '\uEEBA',
            'ReportLibrary': '\uEEBB',
            'ReportLibraryMirrored': '\uEEBC',
            'ContactCard': '\uEEBD',
            'CustomList': '\uEEBE',
            'CustomListMirrored': '\uEEBF',
            'IssueTracking': '\uEEC0',
            'IssueTrackingMirrored': '\uEEC1',
            'PictureLibrary': '\uEEC2',
            'OfficeAddinsLogo': '\uEEC7',
            'OfflineOneDriveParachute': '\uEEC8',
            'OfflineOneDriveParachuteDisabled': '\uEEC9',
            'TriangleSolidUp12': '\uEECC',
            'TriangleSolidDown12': '\uEECD',
            'TriangleSolidLeft12': '\uEECE',
            'TriangleSolidRight12': '\uEECF',
            'TriangleUp12': '\uEED0',
            'TriangleDown12': '\uEED1',
            'TriangleLeft12': '\uEED2',
            'TriangleRight12': '\uEED3',
            'ArrowUpRight8': '\uEED4',
            'ArrowDownRight8': '\uEED5',
            'DocumentSet': '\uEED6',
            'GoToDashboard': '\uEEED',
            'DelveAnalytics': '\uEEEE',
            'ArrowUpRightMirrored8': '\uEEEF',
            'ArrowDownRightMirrored8': '\uEEF0',
            'CompanyDirectory': '\uEF0D',
            'OpenEnrollment': '\uEF1C',
            'CompanyDirectoryMirrored': '\uEF2B',
            'OneDriveAdd': '\uEF32',
            'ProfileSearch': '\uEF35',
            'Header2': '\uEF36',
            'Header3': '\uEF37',
            'Header4': '\uEF38',
            'RingerSolid': '\uEF3A',
            'Eyedropper': '\uEF3C',
            'MarketDown': '\uEF42',
            'CalendarWorkWeek': '\uEF51',
            'SidePanel': '\uEF52',
            'GlobeFavorite': '\uEF53',
            'CaretTopLeftSolid8': '\uEF54',
            'CaretTopRightSolid8': '\uEF55',
            'ViewAll2': '\uEF56',
            'DocumentReply': '\uEF57',
            'PlayerSettings': '\uEF58',
            'ReceiptForward': '\uEF59',
            'ReceiptReply': '\uEF5A',
            'ReceiptCheck': '\uEF5B',
            'Fax': '\uEF5C',
            'RecurringEvent': '\uEF5D',
            'ReplyAlt': '\uEF5E',
            'ReplyAllAlt': '\uEF5F',
            'EditStyle': '\uEF60',
            'EditMail': '\uEF61',
            'Lifesaver': '\uEF62',
            'LifesaverLock': '\uEF63',
            'InboxCheck': '\uEF64',
            'FolderSearch': '\uEF65'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-8.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-8\"",
            src: "url('" + baseUrl + "fabric-icons-8-6fdf1528.woff') format('woff')"
        },
        icons: {
            'CollapseMenu': '\uEF66',
            'ExpandMenu': '\uEF67',
            'Boards': '\uEF68',
            'SunAdd': '\uEF69',
            'SunQuestionMark': '\uEF6A',
            'LandscapeOrientation': '\uEF6B',
            'DocumentSearch': '\uEF6C',
            'PublicCalendar': '\uEF6D',
            'PublicContactCard': '\uEF6E',
            'PublicEmail': '\uEF6F',
            'PublicFolder': '\uEF70',
            'WordDocument': '\uEF71',
            'PowerPointDocument': '\uEF72',
            'ExcelDocument': '\uEF73',
            'GroupedList': '\uEF74',
            'ClassroomLogo': '\uEF75',
            'Sections': '\uEF76',
            'EditPhoto': '\uEF77',
            'Starburst': '\uEF78',
            'ShareiOS': '\uEF79',
            'AirTickets': '\uEF7A',
            'PencilReply': '\uEF7B',
            'Tiles2': '\uEF7C',
            'SkypeCircleCheck': '\uEF7D',
            'SkypeCircleClock': '\uEF7E',
            'SkypeCircleMinus': '\uEF7F',
            'SkypeMessage': '\uEF83',
            'ClosedCaption': '\uEF84',
            'ATPLogo': '\uEF85',
            'OfficeFormsLogoInverse': '\uEF86',
            'RecycleBin': '\uEF87',
            'EmptyRecycleBin': '\uEF88',
            'Hide2': '\uEF89',
            'Breadcrumb': '\uEF8C',
            'BirthdayCake': '\uEF8D',
            'TimeEntry': '\uEF95',
            'CRMProcesses': '\uEFB1',
            'PageEdit': '\uEFB6',
            'PageArrowRight': '\uEFB8',
            'PageRemove': '\uEFBA',
            'Database': '\uEFC7',
            'DataManagementSettings': '\uEFC8',
            'CRMServices': '\uEFD2',
            'EditContact': '\uEFD3',
            'ConnectContacts': '\uEFD4',
            'AppIconDefaultAdd': '\uEFDA',
            'AppIconDefaultList': '\uEFDE',
            'ActivateOrders': '\uEFE0',
            'DeactivateOrders': '\uEFE1',
            'ProductCatalog': '\uEFE8',
            'ScatterChart': '\uEFEB',
            'AccountActivity': '\uEFF4',
            'DocumentManagement': '\uEFFC',
            'CRMReport': '\uEFFE',
            'KnowledgeArticle': '\uF000',
            'Relationship': '\uF003',
            'HomeVerify': '\uF00E',
            'ZipFolder': '\uF012',
            'SurveyQuestions': '\uF01B',
            'TextDocument': '\uF029',
            'TextDocumentShared': '\uF02B',
            'PageCheckedOut': '\uF02C',
            'PageShared': '\uF02D',
            'SaveAndClose': '\uF038',
            'Script': '\uF03A',
            'Archive': '\uF03F',
            'ActivityFeed': '\uF056',
            'Compare': '\uF057',
            'EventDate': '\uF059',
            'ArrowUpRight': '\uF069',
            'CaretRight': '\uF06B',
            'SetAction': '\uF071',
            'ChatBot': '\uF08B',
            'CaretSolidLeft': '\uF08D',
            'CaretSolidDown': '\uF08E',
            'CaretSolidRight': '\uF08F',
            'CaretSolidUp': '\uF090',
            'PowerAppsLogo': '\uF091',
            'PowerApps2Logo': '\uF092',
            'SearchIssue': '\uF09A',
            'SearchIssueMirrored': '\uF09B',
            'FabricAssetLibrary': '\uF09C',
            'FabricDataConnectionLibrary': '\uF09D',
            'FabricDocLibrary': '\uF09E',
            'FabricFormLibrary': '\uF09F',
            'FabricFormLibraryMirrored': '\uF0A0',
            'FabricReportLibrary': '\uF0A1',
            'FabricReportLibraryMirrored': '\uF0A2',
            'FabricPublicFolder': '\uF0A3',
            'FabricFolderSearch': '\uF0A4',
            'FabricMovetoFolder': '\uF0A5',
            'FabricUnsyncFolder': '\uF0A6',
            'FabricSyncFolder': '\uF0A7',
            'FabricOpenFolderHorizontal': '\uF0A8',
            'FabricFolder': '\uF0A9',
            'FabricFolderFill': '\uF0AA',
            'FabricNewFolder': '\uF0AB',
            'FabricPictureLibrary': '\uF0AC',
            'PhotoVideoMedia': '\uF0B1',
            'AddFavorite': '\uF0C8'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons-9.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons-9\"",
            src: "url('" + baseUrl + "fabric-icons-9-c6162b42.woff') format('woff')"
        },
        icons: {
            'AddFavoriteFill': '\uF0C9',
            'BufferTimeBefore': '\uF0CF',
            'BufferTimeAfter': '\uF0D0',
            'BufferTimeBoth': '\uF0D1',
            'PublishContent': '\uF0D4',
            'ClipboardList': '\uF0E3',
            'ClipboardListMirrored': '\uF0E4',
            'CannedChat': '\uF0F2',
            'SkypeForBusinessLogo': '\uF0FC',
            'TabCenter': '\uF100',
            'PageCheckedin': '\uF104',
            'PageList': '\uF106',
            'ReadOutLoud': '\uF112',
            'CaretBottomLeftSolid8': '\uF121',
            'CaretBottomRightSolid8': '\uF122',
            'FolderHorizontal': '\uF12B',
            'MicrosoftStaffhubLogo': '\uF130',
            'GiftboxOpen': '\uF133',
            'StatusCircleOuter': '\uF136',
            'StatusCircleInner': '\uF137',
            'StatusCircleRing': '\uF138',
            'StatusTriangleOuter': '\uF139',
            'StatusTriangleInner': '\uF13A',
            'StatusTriangleExclamation': '\uF13B',
            'StatusCircleExclamation': '\uF13C',
            'StatusCircleErrorX': '\uF13D',
            'StatusCircleInfo': '\uF13F',
            'StatusCircleBlock': '\uF140',
            'StatusCircleBlock2': '\uF141',
            'StatusCircleQuestionMark': '\uF142',
            'StatusCircleSync': '\uF143',
            'Toll': '\uF160',
            'ExploreContentSingle': '\uF164',
            'CollapseContent': '\uF165',
            'CollapseContentSingle': '\uF166',
            'InfoSolid': '\uF167',
            'GroupList': '\uF168',
            'ProgressRingDots': '\uF16A',
            'CaloriesAdd': '\uF172',
            'BranchFork': '\uF173',
            'MuteChat': '\uF17A',
            'AddHome': '\uF17B',
            'AddWork': '\uF17C',
            'MobileReport': '\uF18A',
            'ScaleVolume': '\uF18C',
            'HardDriveGroup': '\uF18F',
            'FastMode': '\uF19A',
            'ToggleLeft': '\uF19E',
            'ToggleRight': '\uF19F',
            'TriangleShape': '\uF1A7',
            'RectangleShape': '\uF1A9',
            'CubeShape': '\uF1AA',
            'Trophy2': '\uF1AE',
            'BucketColor': '\uF1B6',
            'BucketColorFill': '\uF1B7',
            'Taskboard': '\uF1C2',
            'SingleColumn': '\uF1D3',
            'DoubleColumn': '\uF1D4',
            'TripleColumn': '\uF1D5',
            'ColumnLeftTwoThirds': '\uF1D6',
            'ColumnRightTwoThirds': '\uF1D7',
            'AccessLogoFill': '\uF1DB',
            'AnalyticsLogo': '\uF1DE',
            'AnalyticsQuery': '\uF1DF',
            'NewAnalyticsQuery': '\uF1E0',
            'AnalyticsReport': '\uF1E1',
            'WordLogo': '\uF1E3',
            'WordLogoFill': '\uF1E4',
            'ExcelLogo': '\uF1E5',
            'ExcelLogoFill': '\uF1E6',
            'OneNoteLogo': '\uF1E7',
            'OneNoteLogoFill': '\uF1E8',
            'OutlookLogo': '\uF1E9',
            'OutlookLogoFill': '\uF1EA',
            'PowerPointLogo': '\uF1EB',
            'PowerPointLogoFill': '\uF1EC',
            'PublisherLogo': '\uF1ED',
            'PublisherLogoFill': '\uF1EE',
            'ScheduleEventAction': '\uF1EF',
            'FlameSolid': '\uF1F3',
            'ServerProcesses': '\uF1FE',
            'Server': '\uF201',
            'SaveAll': '\uF203',
            'LinkedInLogo': '\uF20A',
            'Decimals': '\uF218',
            'SidePanelMirrored': '\uF221',
            'ProtectRestrict': '\uF22A',
            'Blog': '\uF22B',
            'UnknownMirrored': '\uF22E',
            'PublicContactCardMirrored': '\uF230',
            'GridViewSmall': '\uF232',
            'GridViewMedium': '\uF233',
            'GridViewLarge': '\uF234',
            'Step': '\uF241',
            'StepInsert': '\uF242',
            'StepShared': '\uF243',
            'StepSharedAdd': '\uF244',
            'StepSharedInsert': '\uF245',
            'ViewDashboard': '\uF246',
            'ViewList': '\uF247'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/fabric-icons.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");
// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fabric-assets-license
// tslint:disable:max-line-length

function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = ''; }
    var subset = {
        style: {
            MozOsxFontSmoothing: 'grayscale',
            WebkitFontSmoothing: 'antialiased',
            fontStyle: 'normal',
            fontWeight: 'normal',
            speak: 'none'
        },
        fontFace: {
            fontFamily: "\"FabricMDL2Icons\"",
            src: "url('" + baseUrl + "fabric-icons-a13498cf.woff') format('woff')"
        },
        icons: {
            GlobalNavButton: '\uE700',
            ChevronDown: '\uE70D',
            ChevronUp: '\uE70E',
            Edit: '\uE70F',
            Add: '\uE710',
            Cancel: '\uE711',
            More: '\uE712',
            Settings: '\uE713',
            Mail: '\uE715',
            Filter: '\uE71C',
            Search: '\uE721',
            Share: '\uE72D',
            BlockedSite: '\uE72F',
            FavoriteStar: '\uE734',
            FavoriteStarFill: '\uE735',
            CheckMark: '\uE73E',
            Delete: '\uE74D',
            ChevronLeft: '\uE76B',
            ChevronRight: '\uE76C',
            Calendar: '\uE787',
            Megaphone: '\uE789',
            Undo: '\uE7A7',
            Flag: '\uE7C1',
            Page: '\uE7C3',
            Pinned: '\uE840',
            View: '\uE890',
            Clear: '\uE894',
            Download: '\uE896',
            Upload: '\uE898',
            Folder: '\uE8B7',
            Sort: '\uE8CB',
            AlignRight: '\uE8E2',
            AlignLeft: '\uE8E4',
            Tag: '\uE8EC',
            AddFriend: '\uE8FA',
            Info: '\uE946',
            SortLines: '\uE9D0',
            List: '\uEA37',
            CircleRing: '\uEA3A',
            Heart: '\uEB51',
            HeartFill: '\uEB52',
            Tiles: '\uECA5',
            Embed: '\uECCE',
            Glimmer: '\uECF4',
            Ascending: '\uEDC0',
            Descending: '\uEDC1',
            SortUp: '\uEE68',
            SortDown: '\uEE69',
            SyncToPC: '\uEE6E',
            LargeGrid: '\uEECB',
            SkypeCheck: '\uEF80',
            SkypeClock: '\uEF81',
            SkypeMinus: '\uEF82',
            ClearFilter: '\uEF8F',
            Flow: '\uEF90',
            StatusCircleCheckmark: '\uF13E',
            MoreVertical: '\uF2BC'
        }
    };
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIcons"])(subset, options);
}


/***/ }),

/***/ "../icons/lib/iconAliases.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerIconAliases", function() { return registerIconAliases; });
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/index.js");

var registerIconAliases = function () {
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('trash', 'delete');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('onedrive', 'onedrivelogo');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('alertsolid12', 'eventdatemissed12');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('sixpointstar', '6pointstar');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('twelvepointstar', '12pointstar');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('toggleon', 'toggleleft');
    Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"])('toggleoff', 'toggleright');
};
/* harmony default export */ __webpack_exports__["default"] = (registerIconAliases);


/***/ }),

/***/ "../icons/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return initializeIcons; });
/* harmony import */ var _fabric_icons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../icons/lib/fabric-icons.js");
/* harmony import */ var _fabric_icons_0__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../icons/lib/fabric-icons-0.js");
/* harmony import */ var _fabric_icons_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../icons/lib/fabric-icons-1.js");
/* harmony import */ var _fabric_icons_2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../icons/lib/fabric-icons-2.js");
/* harmony import */ var _fabric_icons_3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../icons/lib/fabric-icons-3.js");
/* harmony import */ var _fabric_icons_4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../icons/lib/fabric-icons-4.js");
/* harmony import */ var _fabric_icons_5__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../icons/lib/fabric-icons-5.js");
/* harmony import */ var _fabric_icons_6__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../icons/lib/fabric-icons-6.js");
/* harmony import */ var _fabric_icons_7__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../icons/lib/fabric-icons-7.js");
/* harmony import */ var _fabric_icons_8__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("../icons/lib/fabric-icons-8.js");
/* harmony import */ var _fabric_icons_9__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("../icons/lib/fabric-icons-9.js");
/* harmony import */ var _fabric_icons_10__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("../icons/lib/fabric-icons-10.js");
/* harmony import */ var _fabric_icons_11__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("../icons/lib/fabric-icons-11.js");
/* harmony import */ var _fabric_icons_12__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("../icons/lib/fabric-icons-12.js");
/* harmony import */ var _fabric_icons_13__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("../icons/lib/fabric-icons-13.js");
/* harmony import */ var _fabric_icons_14__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("../icons/lib/fabric-icons-14.js");
/* harmony import */ var _fabric_icons_15__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("../icons/lib/fabric-icons-15.js");
/* harmony import */ var _fabric_icons_16__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("../icons/lib/fabric-icons-16.js");
/* harmony import */ var _fabric_icons_17__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("../icons/lib/fabric-icons-17.js");
/* harmony import */ var _iconAliases__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("../icons/lib/iconAliases.js");
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("../icons/lib/version.js");




















var DEFAULT_BASE_URL = 'https://spoprod-a.akamaihd.net/files/fabric/assets/icons/';
function initializeIcons(baseUrl, options) {
    if (baseUrl === void 0) { baseUrl = DEFAULT_BASE_URL; }
    [_fabric_icons__WEBPACK_IMPORTED_MODULE_0__["initializeIcons"], _fabric_icons_0__WEBPACK_IMPORTED_MODULE_1__["initializeIcons"], _fabric_icons_1__WEBPACK_IMPORTED_MODULE_2__["initializeIcons"], _fabric_icons_2__WEBPACK_IMPORTED_MODULE_3__["initializeIcons"], _fabric_icons_3__WEBPACK_IMPORTED_MODULE_4__["initializeIcons"], _fabric_icons_4__WEBPACK_IMPORTED_MODULE_5__["initializeIcons"], _fabric_icons_5__WEBPACK_IMPORTED_MODULE_6__["initializeIcons"], _fabric_icons_6__WEBPACK_IMPORTED_MODULE_7__["initializeIcons"], _fabric_icons_7__WEBPACK_IMPORTED_MODULE_8__["initializeIcons"], _fabric_icons_8__WEBPACK_IMPORTED_MODULE_9__["initializeIcons"], _fabric_icons_9__WEBPACK_IMPORTED_MODULE_10__["initializeIcons"], _fabric_icons_10__WEBPACK_IMPORTED_MODULE_11__["initializeIcons"], _fabric_icons_11__WEBPACK_IMPORTED_MODULE_12__["initializeIcons"], _fabric_icons_12__WEBPACK_IMPORTED_MODULE_13__["initializeIcons"], _fabric_icons_13__WEBPACK_IMPORTED_MODULE_14__["initializeIcons"], _fabric_icons_14__WEBPACK_IMPORTED_MODULE_15__["initializeIcons"], _fabric_icons_15__WEBPACK_IMPORTED_MODULE_16__["initializeIcons"], _fabric_icons_16__WEBPACK_IMPORTED_MODULE_17__["initializeIcons"], _fabric_icons_17__WEBPACK_IMPORTED_MODULE_18__["initializeIcons"]].forEach(function (initialize) { return initialize(baseUrl, options); });
    Object(_iconAliases__WEBPACK_IMPORTED_MODULE_19__["registerIconAliases"])();
}



/***/ }),

/***/ "../icons/lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// @uifabric/icons@7.3.0
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/icons', '7.3.0');


/***/ }),

/***/ "../merge-styles/lib/StyleOptionsState.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return setRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return getRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyleOptions", function() { return getStyleOptions; });
/**
 * Sets the current RTL value.
 */
function setRTL(isRTL) {
    if (_rtl !== isRTL) {
        _rtl = isRTL;
    }
}
/**
 * Gets the current RTL value.
 */
function getRTL() {
    if (_rtl === undefined) {
        _rtl = typeof document !== 'undefined' && !!document.documentElement && document.documentElement.getAttribute('dir') === 'rtl';
    }
    return _rtl;
}
var _rtl = getRTL();
function getStyleOptions() {
    return {
        rtl: getRTL()
    };
}


/***/ }),

/***/ "../merge-styles/lib/Stylesheet.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return InjectionMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return Stylesheet; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");

var InjectionMode = {
    /**
     * Avoids style injection, use getRules() to read the styles.
     */
    none: 0,
    /**
     * Inserts rules using the insertRule api.
     */
    insertNode: 1,
    /**
     * Appends rules using appendChild.
     */
    appendChild: 2
};
var STYLESHEET_SETTING = '__stylesheet__';
/**
 * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node
 * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.
 */
var REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);
// tslint:disable-next-line:no-any
var _global = {};
// Grab window.
try {
    _global = window;
}
catch (_a) {
    /* leave as blank object */
}
var _stylesheet;
/**
 * Represents the state of styles registered in the page. Abstracts
 * the surface for adding styles to the stylesheet, exposes helpers
 * for reading the styles registered in server rendered scenarios.
 *
 * @public
 */
var Stylesheet = /** @class */ (function () {
    function Stylesheet(config) {
        this._rules = [];
        this._preservedRules = [];
        this._rulesToInsert = [];
        this._counter = 0;
        this._keyToClassName = {};
        this._onResetCallbacks = [];
        // tslint:disable-next-line:no-any
        this._classNameToArgs = {};
        this._config = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ injectionMode: InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);
    }
    /**
     * Gets the singleton instance.
     */
    Stylesheet.getInstance = function () {
        // tslint:disable-next-line:no-any
        _stylesheet = _global[STYLESHEET_SETTING];
        if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {
            // tslint:disable-next-line:no-string-literal
            var fabricConfig = (_global && _global['FabricConfig']) || {};
            _stylesheet = _global[STYLESHEET_SETTING] = new Stylesheet(fabricConfig.mergeStyles);
        }
        return _stylesheet;
    };
    /**
     * Configures the stylesheet.
     */
    Stylesheet.prototype.setConfig = function (config) {
        this._config = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this._config, config);
    };
    /**
     * Configures a reset callback.
     *
     * @param callback - A callback which will be called when the Stylesheet is reset.
     */
    Stylesheet.prototype.onReset = function (callback) {
        this._onResetCallbacks.push(callback);
    };
    /**
     * Generates a unique classname.
     *
     * @param displayName - Optional value to use as a prefix.
     */
    Stylesheet.prototype.getClassName = function (displayName) {
        var namespace = this._config.namespace;
        var prefix = displayName || this._config.defaultPrefix;
        return "" + (namespace ? namespace + '-' : '') + prefix + "-" + this._counter++;
    };
    /**
     * Used internally to cache information about a class which was
     * registered with the stylesheet.
     */
    Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {
        this._keyToClassName[key] = className;
        this._classNameToArgs[className] = {
            args: args,
            rules: rules
        };
    };
    /**
     * Gets the appropriate classname given a key which was previously
     * registered using cacheClassName.
     */
    Stylesheet.prototype.classNameFromKey = function (key) {
        return this._keyToClassName[key];
    };
    /**
     * Gets the arguments associated with a given classname which was
     * previously registered using cacheClassName.
     */
    Stylesheet.prototype.argsFromClassName = function (className) {
        var entry = this._classNameToArgs[className];
        return entry && entry.args;
    };
    /**
     * Gets the arguments associated with a given classname which was
     * previously registered using cacheClassName.
     */
    Stylesheet.prototype.insertedRulesFromClassName = function (className) {
        var entry = this._classNameToArgs[className];
        return entry && entry.rules;
    };
    /**
     * Inserts a css rule into the stylesheet.
     * @param preserve - Preserves the rule beyond a reset boundary.
     */
    Stylesheet.prototype.insertRule = function (rule, preserve) {
        var injectionMode = this._config.injectionMode;
        var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;
        if (preserve) {
            this._preservedRules.push(rule);
        }
        if (element) {
            switch (this._config.injectionMode) {
                case InjectionMode.insertNode:
                    var sheet = element.sheet;
                    try {
                        sheet.insertRule(rule, sheet.cssRules.length);
                    }
                    catch (e) {
                        // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)
                        // We need to swallow the exceptions for this scenario, otherwise we'd need to filter
                        // which could be slower and bulkier.
                    }
                    break;
                case InjectionMode.appendChild:
                    element.appendChild(document.createTextNode(rule));
                    break;
            }
        }
        else {
            this._rules.push(rule);
        }
        if (this._config.onInsertRule) {
            this._config.onInsertRule(rule);
        }
    };
    /**
     * Gets all rules registered with the stylesheet; only valid when
     * using InsertionMode.none.
     */
    Stylesheet.prototype.getRules = function (includePreservedRules) {
        return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('') + this._rulesToInsert.join('');
    };
    /**
     * Resets the internal state of the stylesheet. Only used in server
     * rendered scenarios where we're using InsertionMode.none.
     */
    Stylesheet.prototype.reset = function () {
        this._rules = [];
        this._rulesToInsert = [];
        this._counter = 0;
        this._classNameToArgs = {};
        this._keyToClassName = {};
        this._onResetCallbacks.forEach(function (callback) { return callback(); });
    };
    // Forces the regeneration of incoming styles without totally resetting the stylesheet.
    Stylesheet.prototype.resetKeys = function () {
        this._keyToClassName = {};
    };
    Stylesheet.prototype._getStyleElement = function () {
        var _this = this;
        if (!this._styleElement && typeof document !== 'undefined') {
            this._styleElement = this._createStyleElement();
            if (!REUSE_STYLE_NODE) {
                // Reset the style element on the next frame.
                window.requestAnimationFrame(function () {
                    _this._styleElement = undefined;
                });
            }
        }
        return this._styleElement;
    };
    Stylesheet.prototype._createStyleElement = function () {
        var head = document.head;
        var styleElement = document.createElement('style');
        styleElement.setAttribute('data-merge-styles', 'true');
        var cspSettings = this._config.cspSettings;
        if (cspSettings) {
            if (cspSettings.nonce) {
                styleElement.setAttribute('nonce', cspSettings.nonce);
            }
        }
        if (this._lastStyleElement) {
            // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.
            // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax
            head.insertBefore(styleElement, this._lastStyleElement.nextElementSibling);
        }
        else {
            var placeholderStyleTag = this._findPlaceholderStyleTag();
            if (placeholderStyleTag) {
                head.insertBefore(styleElement, placeholderStyleTag.nextElementSibling);
            }
            else {
                head.insertBefore(styleElement, head.childNodes[0]);
            }
        }
        this._lastStyleElement = styleElement;
        return styleElement;
    };
    Stylesheet.prototype._findPlaceholderStyleTag = function () {
        var head = document.head;
        if (head) {
            return head.querySelector('style[data-merge-styles]');
        }
        return null;
    };
    return Stylesheet;
}());



/***/ }),

/***/ "../merge-styles/lib/concatStyleSets.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return concatStyleSets; });
/**
 * Combine a set of styles together (but does not register css classes).
 * @param styleSets - One or more stylesets to be merged (each param can also be falsy).
 */
function concatStyleSets() {
    var styleSets = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        styleSets[_i] = arguments[_i];
    }
    if (styleSets && styleSets.length === 1 && styleSets[0] && !styleSets[0].subComponentStyles) {
        return styleSets[0];
    }
    var mergedSet = {};
    // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.
    var workingSubcomponentStyles = {};
    for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {
        var currentSet = styleSets_1[_a];
        if (currentSet) {
            for (var prop in currentSet) {
                if (currentSet.hasOwnProperty(prop)) {
                    if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {
                        // subcomponent styles - style functions or objects
                        var currentComponentStyles = currentSet.subComponentStyles;
                        for (var subCompProp in currentComponentStyles) {
                            if (currentComponentStyles.hasOwnProperty(subCompProp)) {
                                if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {
                                    workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);
                                }
                                else {
                                    workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];
                                }
                            }
                        }
                        continue;
                    }
                    // the as any casts below is a workaround for ts 2.8.
                    // todo: remove cast to any in ts 2.9.
                    var mergedValue = mergedSet[prop];
                    var currentValue = currentSet[prop];
                    if (mergedValue === undefined) {
                        mergedSet[prop] = currentValue;
                    }
                    else {
                        mergedSet[prop] = (Array.isArray(mergedValue) ? mergedValue : [mergedValue]).concat((Array.isArray(currentValue) ? currentValue : [currentValue]));
                    }
                }
            }
        }
    }
    if (Object.keys(workingSubcomponentStyles).length > 0) {
        mergedSet.subComponentStyles = {};
        var mergedSubStyles = mergedSet.subComponentStyles;
        var _loop_1 = function (subCompProp) {
            if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {
                var workingSet_1 = workingSubcomponentStyles[subCompProp];
                mergedSubStyles[subCompProp] = function (styleProps) {
                    return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {
                        return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;
                    }));
                };
            }
        };
        // now we process the subcomponent styles if there are any
        for (var subCompProp in workingSubcomponentStyles) {
            _loop_1(subCompProp);
        }
    }
    return mergedSet;
}


/***/ }),

/***/ "../merge-styles/lib/concatStyleSetsWithProps.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return concatStyleSetsWithProps; });
/* harmony import */ var _concatStyleSets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/concatStyleSets.js");

/**
 * Concatenates style sets into one, but resolves functional sets using the given props.
 * @param styleProps - Props used to resolve functional sets.
 * @param allStyles - Style sets, which can be functions or objects.
 */
function concatStyleSetsWithProps(styleProps) {
    var allStyles = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        allStyles[_i - 1] = arguments[_i];
    }
    var result = [];
    for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {
        var styles = allStyles_1[_a];
        if (styles) {
            result.push(typeof styles === 'function' ? styles(styleProps) : styles);
        }
    }
    if (result.length === 1) {
        return result[0];
    }
    else if (result.length) {
        // cliffkoh: I cannot figure out how to avoid the cast to any here.
        // It is something to do with the use of Omit in IStyleSet.
        // It might not be necessary once  Omit becomes part of lib.d.ts (when we remove our own Omit and rely on
        // the official version).
        // tslint:disable-next-line:no-any
        return _concatStyleSets__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"].apply(void 0, result);
    }
    return {};
}


/***/ }),

/***/ "../merge-styles/lib/extractStyleParts.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractStyleParts", function() { return extractStyleParts; });
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/Stylesheet.js");

/**
 * Separates the classes and style objects. Any classes that are pre-registered
 * args are auto expanded into objects.
 */
function extractStyleParts() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    var classes = [];
    var objects = [];
    var stylesheet = _Stylesheet__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
    function _processArgs(argsList) {
        for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {
            var arg = argsList_1[_i];
            if (arg) {
                if (typeof arg === 'string') {
                    if (arg.indexOf(' ') >= 0) {
                        _processArgs(arg.split(' '));
                    }
                    else {
                        var translatedArgs = stylesheet.argsFromClassName(arg);
                        if (translatedArgs) {
                            _processArgs(translatedArgs);
                        }
                        else {
                            // Avoid adding the same class twice.
                            if (classes.indexOf(arg) === -1) {
                                classes.push(arg);
                            }
                        }
                    }
                }
                else if (Array.isArray(arg)) {
                    _processArgs(arg);
                }
                else if (typeof arg === 'object') {
                    objects.push(arg);
                }
            }
        }
    }
    _processArgs(args);
    return {
        classes: classes,
        objects: objects
    };
}


/***/ }),

/***/ "../merge-styles/lib/fontFace.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return fontFace; });
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/StyleOptionsState.js");
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/Stylesheet.js");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/styleToClassName.js");



/**
 * Registers a font face.
 * @public
 */
function fontFace(font) {
    _Stylesheet__WEBPACK_IMPORTED_MODULE_1__["Stylesheet"].getInstance().insertRule("@font-face{" + Object(_styleToClassName__WEBPACK_IMPORTED_MODULE_2__["serializeRuleEntries"])(Object(_StyleOptionsState__WEBPACK_IMPORTED_MODULE_0__["getStyleOptions"])(), font) + "}", true);
}


/***/ }),

/***/ "../merge-styles/lib/getVendorSettings.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVendorSettings", function() { return getVendorSettings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVendorSettings", function() { return setVendorSettings; });
var _vendorSettings;
function getVendorSettings() {
    if (!_vendorSettings) {
        var doc = typeof document !== 'undefined' ? document : undefined;
        var nav = typeof navigator !== 'undefined' ? navigator : undefined;
        var userAgent = nav ? nav.userAgent.toLowerCase() : undefined;
        if (!doc) {
            _vendorSettings = {
                isWebkit: true,
                isMoz: true,
                isOpera: true,
                isMs: true
            };
        }
        else {
            _vendorSettings = {
                isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),
                isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),
                isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),
                isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\/\d./i.test(navigator.userAgent)))
            };
        }
    }
    return _vendorSettings;
}
/**
 * Sets the vendor settings for prefixing and vendor specific operations.
 */
function setVendorSettings(vendorSettings) {
    _vendorSettings = vendorSettings;
}


/***/ }),

/***/ "../merge-styles/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _mergeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/mergeStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _mergeStyles__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCss", function() { return _mergeStyles__WEBPACK_IMPORTED_MODULE_0__["mergeCss"]; });

/* harmony import */ var _mergeStyleSets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/mergeStyleSets.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _mergeStyleSets__WEBPACK_IMPORTED_MODULE_1__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCssSets", function() { return _mergeStyleSets__WEBPACK_IMPORTED_MODULE_1__["mergeCssSets"]; });

/* harmony import */ var _concatStyleSets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/concatStyleSets.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _concatStyleSets__WEBPACK_IMPORTED_MODULE_2__["concatStyleSets"]; });

/* harmony import */ var _concatStyleSetsWithProps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../merge-styles/lib/concatStyleSetsWithProps.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _concatStyleSetsWithProps__WEBPACK_IMPORTED_MODULE_3__["concatStyleSetsWithProps"]; });

/* harmony import */ var _fontFace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../merge-styles/lib/fontFace.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _fontFace__WEBPACK_IMPORTED_MODULE_4__["fontFace"]; });

/* harmony import */ var _keyframes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../merge-styles/lib/keyframes.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _keyframes__WEBPACK_IMPORTED_MODULE_5__["keyframes"]; });

/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../merge-styles/lib/Stylesheet.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _Stylesheet__WEBPACK_IMPORTED_MODULE_6__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _Stylesheet__WEBPACK_IMPORTED_MODULE_6__["Stylesheet"]; });

/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../merge-styles/lib/StyleOptionsState.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return _StyleOptionsState__WEBPACK_IMPORTED_MODULE_7__["setRTL"]; });

/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../merge-styles/lib/version.js");











/***/ }),

/***/ "../merge-styles/lib/keyframes.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return keyframes; });
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/StyleOptionsState.js");
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/Stylesheet.js");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/styleToClassName.js");



/**
 * Registers keyframe definitions.
 *
 * @public
 */
function keyframes(timeline) {
    var stylesheet = _Stylesheet__WEBPACK_IMPORTED_MODULE_1__["Stylesheet"].getInstance();
    var name = stylesheet.getClassName();
    var rulesArray = [];
    for (var prop in timeline) {
        if (timeline.hasOwnProperty(prop)) {
            rulesArray.push(prop, '{', Object(_styleToClassName__WEBPACK_IMPORTED_MODULE_2__["serializeRuleEntries"])(Object(_StyleOptionsState__WEBPACK_IMPORTED_MODULE_0__["getStyleOptions"])(), timeline[prop]), '}');
        }
    }
    var rules = rulesArray.join('');
    stylesheet.insertRule("@keyframes " + name + "{" + rules + "}", true);
    stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);
    return name;
}


/***/ }),

/***/ "../merge-styles/lib/mergeStyleSets.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return mergeStyleSets; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeCssSets", function() { return mergeCssSets; });
/* harmony import */ var _concatStyleSets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/concatStyleSets.js");
/* harmony import */ var _extractStyleParts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/extractStyleParts.js");
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/StyleOptionsState.js");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../merge-styles/lib/styleToClassName.js");




/**
 * Takes in one or more style set objects, each consisting of a set of areas,
 * each which will produce a class name. Using this is analogous to calling
 * `mergeStyles` for each property in the object, but ensures we maintain the
 * set ordering when multiple style sets are merged.
 *
 * @param styleSets - One or more style sets to be merged.
 */
function mergeStyleSets() {
    var styleSets = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        styleSets[_i] = arguments[_i];
    }
    return mergeCssSets(styleSets, Object(_StyleOptionsState__WEBPACK_IMPORTED_MODULE_2__["getStyleOptions"])());
}
/**
 * Takes in one or more style set objects, each1consisting of a set of areas,
 * each which will produce a class name. Using this is analogous to calling
 * `mergeCss` for each property in the object, but ensures the
 * set ordering when multiple style sets are merged.
 *
 * @param styleSets - One or more style sets to be merged.
 * @param options - (optional) Options to use when creating rules.
 */
function mergeCssSets(styleSets, options) {
    // tslint:disable-next-line:no-any
    var classNameSet = { subComponentStyles: {} };
    var styleSet = styleSets[0];
    if (!styleSet && styleSets.length <= 1) {
        return { subComponentStyles: {} };
    }
    var concatenatedStyleSet = _concatStyleSets__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"].apply(void 0, styleSets);
    var registrations = [];
    for (var styleSetArea in concatenatedStyleSet) {
        if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {
            if (styleSetArea === 'subComponentStyles') {
                classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};
                continue;
            }
            var styles = concatenatedStyleSet[styleSetArea];
            var _a = Object(_extractStyleParts__WEBPACK_IMPORTED_MODULE_1__["extractStyleParts"])(styles), classes = _a.classes, objects = _a.objects;
            var registration = Object(_styleToClassName__WEBPACK_IMPORTED_MODULE_3__["styleToRegistration"])(options || {}, { displayName: styleSetArea }, objects);
            registrations.push(registration);
            if (registration) {
                classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');
            }
        }
    }
    for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {
        var registration = registrations_1[_i];
        if (registration) {
            Object(_styleToClassName__WEBPACK_IMPORTED_MODULE_3__["applyRegistration"])(registration);
        }
    }
    return classNameSet;
}


/***/ }),

/***/ "../merge-styles/lib/mergeStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return mergeStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeCss", function() { return mergeCss; });
/* harmony import */ var _extractStyleParts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/extractStyleParts.js");
/* harmony import */ var _StyleOptionsState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/StyleOptionsState.js");
/* harmony import */ var _styleToClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/styleToClassName.js");



/**
 * Concatenation helper, which can merge class names together. Skips over falsey values.
 *
 * @public
 */
function mergeStyles() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    return mergeCss(args, Object(_StyleOptionsState__WEBPACK_IMPORTED_MODULE_1__["getStyleOptions"])());
}
/**
 * Concatenation helper, which can merge class names together. Skips over falsey values.
 * Accepts a set of options that will be used when calculating styles.
 *
 * @public
 */
function mergeCss(args, options) {
    var styleArgs = args instanceof Array ? args : [args];
    var _a = Object(_extractStyleParts__WEBPACK_IMPORTED_MODULE_0__["extractStyleParts"])(styleArgs), classes = _a.classes, objects = _a.objects;
    if (objects.length) {
        classes.push(Object(_styleToClassName__WEBPACK_IMPORTED_MODULE_2__["styleToClassName"])(options || {}, objects));
    }
    return classes.join(' ');
}


/***/ }),

/***/ "../merge-styles/lib/styleToClassName.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeRuleEntries", function() { return serializeRuleEntries; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styleToRegistration", function() { return styleToRegistration; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyRegistration", function() { return applyRegistration; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styleToClassName", function() { return styleToClassName; });
/* harmony import */ var _Stylesheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/Stylesheet.js");
/* harmony import */ var _transforms_kebabRules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/transforms/kebabRules.js");
/* harmony import */ var _transforms_prefixRules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/transforms/prefixRules.js");
/* harmony import */ var _transforms_provideUnits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../merge-styles/lib/transforms/provideUnits.js");
/* harmony import */ var _transforms_rtlifyRules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../merge-styles/lib/transforms/rtlifyRules.js");





var DISPLAY_NAME = 'displayName';
function getDisplayName(rules) {
    var rootStyle = rules && rules['&'];
    return rootStyle ? rootStyle.displayName : undefined;
}
var globalSelectorRegExp = /\:global\((.+?)\)/g;
/**
 * Finds comma separated selectors in a :global() e.g. ":global(.class1, .class2, .class3)"
 * and wraps them each in their own global ":global(.class1), :global(.class2), :global(.class3)"
 *
 * @param selectorWithGlobals The selector to process
 * @returns The updated selector
 */
function expandCommaSeparatedGlobals(selectorWithGlobals) {
    // We the selector does not have a :global() we can shortcut
    if (!globalSelectorRegExp.test(selectorWithGlobals)) {
        return selectorWithGlobals;
    }
    var replacementInfo = [];
    var findGlobal = /\:global\((.+?)\)/g;
    var match = null;
    // Create a result list for global selectors so we can replace them.
    while ((match = findGlobal.exec(selectorWithGlobals))) {
        // Only if the found selector is a comma separated list we'll process it.
        if (match[1].indexOf(',') > -1) {
            replacementInfo.push([
                match.index,
                match.index + match[0].length,
                // Wrap each of the found selectors in :global()
                match[1]
                    .split(',')
                    .map(function (v) { return ":global(" + v.trim() + ")"; })
                    .join(', ')
            ]);
        }
    }
    // Replace the found selectors with their wrapped variants in reverse order
    return replacementInfo.reverse().reduce(function (selector, _a) {
        var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];
        var prefix = selector.slice(0, matchIndex);
        var suffix = selector.slice(matchEndIndex);
        return prefix + replacement + suffix;
    }, selectorWithGlobals);
}
function expandSelector(newSelector, currentSelector) {
    if (newSelector.indexOf(':global(') >= 0) {
        return newSelector.replace(globalSelectorRegExp, '$1');
    }
    else if (newSelector.indexOf(':') === 0) {
        return currentSelector + newSelector;
    }
    else if (newSelector.indexOf('&') < 0) {
        return currentSelector + ' ' + newSelector;
    }
    return newSelector;
}
function extractRules(args, rules, currentSelector) {
    if (rules === void 0) { rules = { __order: [] }; }
    if (currentSelector === void 0) { currentSelector = '&'; }
    var stylesheet = _Stylesheet__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
    var currentRules = rules[currentSelector];
    if (!currentRules) {
        currentRules = {};
        rules[currentSelector] = currentRules;
        rules.__order.push(currentSelector);
    }
    for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
        var arg = args_1[_i];
        // If the arg is a string, we need to look up the class map and merge.
        if (typeof arg === 'string') {
            var expandedRules = stylesheet.argsFromClassName(arg);
            if (expandedRules) {
                extractRules(expandedRules, rules, currentSelector);
            }
            // Else if the arg is an array, we need to recurse in.
        }
        else if (Array.isArray(arg)) {
            extractRules(arg, rules, currentSelector);
        }
        else {
            // tslint:disable-next-line:no-any
            for (var prop in arg) {
                if (prop === 'selectors') {
                    // tslint:disable-next-line:no-any
                    var selectors = arg.selectors;
                    var _loop_1 = function (newSelector) {
                        if (selectors.hasOwnProperty(newSelector)) {
                            var selectorValue_1 = selectors[newSelector];
                            if (newSelector.indexOf('@') === 0) {
                                newSelector = newSelector + '{' + currentSelector;
                                extractRules([selectorValue_1], rules, newSelector);
                            }
                            else if (newSelector.indexOf(',') > -1) {
                                expandCommaSeparatedGlobals(newSelector)
                                    .split(',')
                                    .map(function (s) { return s.trim(); })
                                    .forEach(function (separatedSelector) {
                                    return extractRules([selectorValue_1], rules, expandSelector(separatedSelector, currentSelector));
                                });
                            }
                            else {
                                extractRules([selectorValue_1], rules, expandSelector(newSelector, currentSelector));
                            }
                        }
                    };
                    for (var newSelector in selectors) {
                        _loop_1(newSelector);
                    }
                }
                else {
                    if (arg[prop] !== undefined) {
                        // Else, add the rule to the currentSelector.
                        if (prop === 'margin' || prop === 'padding') {
                            // tslint:disable-next-line:no-any
                            expandQuads(currentRules, prop, arg[prop]);
                        }
                        else {
                            // tslint:disable-next-line:no-any
                            currentRules[prop] = arg[prop];
                        }
                    }
                }
            }
        }
    }
    return rules;
}
function expandQuads(currentRules, name, value) {
    var parts = typeof value === 'string' ? value.split(' ') : [value];
    currentRules[name + 'Top'] = parts[0];
    currentRules[name + 'Right'] = parts[1] || parts[0];
    currentRules[name + 'Bottom'] = parts[2] || parts[0];
    currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];
}
function getKeyForRules(options, rules) {
    var serialized = [options.rtl ? 'rtl' : 'ltr'];
    var hasProps = false;
    for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {
        var selector = _a[_i];
        serialized.push(selector);
        var rulesForSelector = rules[selector];
        for (var propName in rulesForSelector) {
            if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {
                hasProps = true;
                serialized.push(propName, rulesForSelector[propName]);
            }
        }
    }
    return hasProps ? serialized.join('') : undefined;
}
function serializeRuleEntries(options, ruleEntries) {
    if (!ruleEntries) {
        return '';
    }
    var allEntries = [];
    for (var entry in ruleEntries) {
        if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {
            allEntries.push(entry, ruleEntries[entry]);
        }
    }
    // Apply transforms.
    for (var i = 0; i < allEntries.length; i += 2) {
        Object(_transforms_kebabRules__WEBPACK_IMPORTED_MODULE_1__["kebabRules"])(allEntries, i);
        Object(_transforms_provideUnits__WEBPACK_IMPORTED_MODULE_3__["provideUnits"])(allEntries, i);
        Object(_transforms_rtlifyRules__WEBPACK_IMPORTED_MODULE_4__["rtlifyRules"])(options, allEntries, i);
        Object(_transforms_prefixRules__WEBPACK_IMPORTED_MODULE_2__["prefixRules"])(allEntries, i);
    }
    // Apply punctuation.
    for (var i = 1; i < allEntries.length; i += 4) {
        allEntries.splice(i, 1, ':', allEntries[i], ';');
    }
    return allEntries.join('');
}
function styleToRegistration(options) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    var rules = extractRules(args);
    var key = getKeyForRules(options, rules);
    if (key) {
        var stylesheet = _Stylesheet__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
        var registration = {
            className: stylesheet.classNameFromKey(key),
            key: key,
            args: args
        };
        if (!registration.className) {
            registration.className = stylesheet.getClassName(getDisplayName(rules));
            var rulesToInsert = [];
            for (var _a = 0, _b = rules.__order; _a < _b.length; _a++) {
                var selector = _b[_a];
                rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));
            }
            registration.rulesToInsert = rulesToInsert;
        }
        return registration;
    }
}
function applyRegistration(registration) {
    var stylesheet = _Stylesheet__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
    var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;
    if (rulesToInsert) {
        // rulesToInsert is an ordered array of selector/rule pairs.
        for (var i = 0; i < rulesToInsert.length; i += 2) {
            var rules = rulesToInsert[i + 1];
            if (rules) {
                var selector = rulesToInsert[i];
                selector = selector.replace(/&/g, '.' + registration.className);
                // Insert. Note if a media query, we must close the query with a final bracket.
                var processedRule = selector + "{" + rules + "}" + (selector.indexOf('@') === 0 ? '}' : '');
                stylesheet.insertRule(processedRule);
            }
        }
        stylesheet.cacheClassName(className, key, args, rulesToInsert);
    }
}
function styleToClassName(options) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    var registration = styleToRegistration.apply(void 0, [options].concat(args));
    if (registration) {
        applyRegistration(registration);
        return registration.className;
    }
    return '';
}


/***/ }),

/***/ "../merge-styles/lib/transforms/kebabRules.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "kebabRules", function() { return kebabRules; });
var rules = {};
function kebabRules(rulePairs, index) {
    var rule = rulePairs[index];
    rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();
}


/***/ }),

/***/ "../merge-styles/lib/transforms/prefixRules.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefixRules", function() { return prefixRules; });
/* harmony import */ var _getVendorSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/getVendorSettings.js");

var autoPrefixNames = {
    'user-select': 1
};
function prefixRules(rulePairs, index) {
    var vendorSettings = Object(_getVendorSettings__WEBPACK_IMPORTED_MODULE_0__["getVendorSettings"])();
    var name = rulePairs[index];
    if (autoPrefixNames[name]) {
        var value = rulePairs[index + 1];
        if (autoPrefixNames[name]) {
            if (vendorSettings.isWebkit) {
                rulePairs.push('-webkit-' + name, value);
            }
            if (vendorSettings.isMoz) {
                rulePairs.push('-moz-' + name, value);
            }
            if (vendorSettings.isMs) {
                rulePairs.push('-ms-' + name, value);
            }
            if (vendorSettings.isOpera) {
                rulePairs.push('-o-' + name, value);
            }
        }
    }
}


/***/ }),

/***/ "../merge-styles/lib/transforms/provideUnits.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "provideUnits", function() { return provideUnits; });
var NON_PIXEL_NUMBER_PROPS = [
    'column-count',
    'font-weight',
    'flex-basis',
    'flex',
    'flex-grow',
    'flex-shrink',
    'fill-opacity',
    'opacity',
    'order',
    'z-index',
    'zoom'
];
function provideUnits(rulePairs, index) {
    var name = rulePairs[index];
    var value = rulePairs[index + 1];
    if (typeof value === 'number') {
        var unit = NON_PIXEL_NUMBER_PROPS.indexOf(name) === -1 ? 'px' : '';
        rulePairs[index + 1] = "" + value + unit;
    }
}


/***/ }),

/***/ "../merge-styles/lib/transforms/rtlifyRules.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rtlifyRules", function() { return rtlifyRules; });
var _a;
var LEFT = 'left';
var RIGHT = 'right';
var NO_FLIP = '@noflip';
var NAME_REPLACEMENTS = (_a = {},
    _a[LEFT] = RIGHT,
    _a[RIGHT] = LEFT,
    _a);
var VALUE_REPLACEMENTS = {
    'w-resize': 'e-resize',
    'sw-resize': 'se-resize',
    'nw-resize': 'ne-resize'
};
/**
 * RTLifies the rulePair in the array at the current index. This mutates the array for performance
 * reasons.
 */
function rtlifyRules(options, rulePairs, index) {
    if (options.rtl) {
        var name_1 = rulePairs[index];
        if (!name_1) {
            return;
        }
        var value = rulePairs[index + 1];
        if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {
            rulePairs[index + 1] = value.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g, '');
        }
        else if (name_1.indexOf(LEFT) >= 0) {
            rulePairs[index] = name_1.replace(LEFT, RIGHT);
        }
        else if (name_1.indexOf(RIGHT) >= 0) {
            rulePairs[index] = name_1.replace(RIGHT, LEFT);
        }
        else if (String(value).indexOf(LEFT) >= 0) {
            rulePairs[index + 1] = value.replace(LEFT, RIGHT);
        }
        else if (String(value).indexOf(RIGHT) >= 0) {
            rulePairs[index + 1] = value.replace(RIGHT, LEFT);
        }
        else if (NAME_REPLACEMENTS[name_1]) {
            rulePairs[index] = NAME_REPLACEMENTS[name_1];
        }
        else if (VALUE_REPLACEMENTS[value]) {
            rulePairs[index + 1] = VALUE_REPLACEMENTS[value];
        }
        else {
            switch (name_1) {
                case 'margin':
                case 'padding':
                    rulePairs[index + 1] = flipQuad(value);
                    break;
                case 'box-shadow':
                    rulePairs[index + 1] = negateNum(value, 0);
                    break;
            }
        }
    }
}
/**
 * Given a string value in a space delimited format (e.g. "1 2 3 4"), negates a particular value.
 */
function negateNum(value, partIndex) {
    var parts = value.split(' ');
    var numberVal = parseInt(parts[partIndex], 10);
    parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));
    return parts.join(' ');
}
/**
 * Given a string quad, flips the left and right values.
 */
function flipQuad(value) {
    if (typeof value === 'string') {
        var parts = value.split(' ');
        if (parts.length === 4) {
            return parts[0] + " " + parts[3] + " " + parts[2] + " " + parts[1];
        }
    }
    return value;
}


/***/ }),

/***/ "../merge-styles/lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// @uifabric/merge-styles@7.8.0
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/merge-styles', '7.8.0');


/***/ }),

/***/ "../set-version/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _setVersion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/setVersion.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVersion", function() { return _setVersion__WEBPACK_IMPORTED_MODULE_0__["setVersion"]; });



Object(_setVersion__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/set-version', '6.0.0');


/***/ }),

/***/ "../set-version/lib/setVersion.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVersion", function() { return setVersion; });
// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -
// this cache is local to the module closure inside this bundle
var packagesCache = {};
// Cache access to window to avoid IE11 memory leak.
var _win = undefined;
try {
    _win = window;
}
catch (e) {
    /* no-op */
}
function setVersion(packageName, packageVersion) {
    if (typeof _win !== 'undefined') {
        // tslint:disable-next-line:no-any
        var packages = (_win.__packages__ = _win.__packages__ || {});
        // We allow either the global packages or local packages caches to invalidate so testing can just clear the global to set this state
        if (!packages[packageName] || !packagesCache[packageName]) {
            packagesCache[packageName] = packageVersion;
            var versions = (packages[packageName] = packages[packageName] || []);
            versions.push(packageVersion);
        }
    }
}


/***/ }),

/***/ "../styling/lib/MergeStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["concatStyleSetsWithProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["fontFace"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"]; });




/***/ }),

/***/ "../styling/lib/classNames/AnimationClassNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return AnimationClassNames; });
/* harmony import */ var _utilities_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/utilities/index.js");
/* harmony import */ var _styles_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/index.js");


/**
 * {@docCategory AnimationClassNames}
 */
var AnimationClassNames = Object(_utilities_index__WEBPACK_IMPORTED_MODULE_0__["buildClassMap"])(_styles_index__WEBPACK_IMPORTED_MODULE_1__["AnimationStyles"]);


/***/ }),

/***/ "../styling/lib/classNames/ColorClassNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return ColorClassNames; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _styles_DefaultPalette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/DefaultPalette.js");
/* harmony import */ var _styles_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/styles/index.js");



var ColorClassNames = {};
for (var colorName in _styles_DefaultPalette__WEBPACK_IMPORTED_MODULE_1__["DefaultPalette"]) {
    if (_styles_DefaultPalette__WEBPACK_IMPORTED_MODULE_1__["DefaultPalette"].hasOwnProperty(colorName)) {
        // Foreground color
        _defineGetter(ColorClassNames, colorName, '', false, 'color');
        // Hover color
        _defineGetter(ColorClassNames, colorName, 'Hover', true, 'color');
        // Background color
        _defineGetter(ColorClassNames, colorName, 'Background', false, 'background');
        // Background hover
        _defineGetter(ColorClassNames, colorName, 'BackgroundHover', true, 'background');
        // Border color
        _defineGetter(ColorClassNames, colorName, 'Border', false, 'borderColor');
        // Border hover color
        _defineGetter(ColorClassNames, colorName, 'BorderHover', true, 'borderColor');
    }
}
/**
 * Defines a getter for the given class configuration.
 */
function _defineGetter(obj, colorName, suffix, isHover, cssProperty) {
    Object.defineProperty(obj, colorName + suffix, {
        get: function () {
            var _a;
            // tslint:disable-next-line:no-any
            var style = (_a = {}, _a[cssProperty] = Object(_styles_index__WEBPACK_IMPORTED_MODULE_2__["getTheme"])().palette[colorName], _a);
            return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])(isHover ? { selectors: { ':hover': style } } : style).toString();
        },
        enumerable: true,
        configurable: true
    });
}


/***/ }),

/***/ "../styling/lib/classNames/FontClassNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return FontClassNames; });
/* harmony import */ var _utilities_buildClassMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/utilities/buildClassMap.js");
/* harmony import */ var _styles_DefaultFontStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/DefaultFontStyles.js");


/**
 * {@docCategory FontClassNames}
 */
var FontClassNames = Object(_utilities_buildClassMap__WEBPACK_IMPORTED_MODULE_0__["buildClassMap"])(_styles_DefaultFontStyles__WEBPACK_IMPORTED_MODULE_1__["DefaultFontStyles"]);


/***/ }),

/***/ "../styling/lib/classNames/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AnimationClassNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/classNames/AnimationClassNames.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _AnimationClassNames__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"]; });

/* harmony import */ var _FontClassNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/classNames/FontClassNames.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return _FontClassNames__WEBPACK_IMPORTED_MODULE_1__["FontClassNames"]; });

/* harmony import */ var _ColorClassNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/classNames/ColorClassNames.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _ColorClassNames__WEBPACK_IMPORTED_MODULE_2__["ColorClassNames"]; });






/***/ }),

/***/ "../styling/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _classNames_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/classNames/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _classNames_index__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return _classNames_index__WEBPACK_IMPORTED_MODULE_0__["FontClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _classNames_index__WEBPACK_IMPORTED_MODULE_0__["ColorClassNames"]; });

/* harmony import */ var _styles_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["AnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["AnimationVariables"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["DefaultPalette"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["DefaultEffects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["DefaultFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["registerDefaultFontFaces"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["FontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["FontWeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["createFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["hiddenContentStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["PulsingBeaconAnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ThemeSettingName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["loadTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["createTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["registerOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["removeOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["focusClear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getFocusOutlineStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getThemedContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelectorWhite"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelectorBlack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinUhfMobile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["normalize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["noWrap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getFadedOverflowStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["getPlaceholderStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _styles_index__WEBPACK_IMPORTED_MODULE_1__["ZIndexes"]; });

/* harmony import */ var _utilities_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/utilities/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["buildClassMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["getIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["registerIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["registerIconAlias"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["unregisterIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["setIconOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _utilities_index__WEBPACK_IMPORTED_MODULE_2__["getIconClassName"]; });

/* harmony import */ var _MergeStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../styling/lib/MergeStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["Stylesheet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["concatStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["concatStyleSetsWithProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["fontFace"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["keyframes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _MergeStyles__WEBPACK_IMPORTED_MODULE_3__["mergeStyles"]; });

/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../styling/lib/version.js");







/***/ }),

/***/ "../styling/lib/styles/AnimationStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return AnimationVariables; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return AnimationStyles; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");

/* Register the keyframes */
var EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';
var EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';
var DURATION_1 = '0.167s';
var DURATION_2 = '0.267s';
var DURATION_3 = '0.367s';
var DURATION_4 = '0.467s';
var FADE_IN = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { opacity: 0 },
    to: { opacity: 1 }
});
var FADE_OUT = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { opacity: 1 },
    to: { opacity: 0, visibility: 'hidden' }
});
var SLIDE_RIGHT_IN10 = _createSlideInX(-10);
var SLIDE_RIGHT_IN20 = _createSlideInX(-20);
var SLIDE_RIGHT_IN40 = _createSlideInX(-40);
var SLIDE_RIGHT_IN400 = _createSlideInX(-400);
var SLIDE_LEFT_IN10 = _createSlideInX(10);
var SLIDE_LEFT_IN20 = _createSlideInX(20);
var SLIDE_LEFT_IN40 = _createSlideInX(40);
var SLIDE_LEFT_IN400 = _createSlideInX(400);
var SLIDE_UP_IN10 = _createSlideInY(10);
var SLIDE_UP_IN20 = _createSlideInY(20);
var SLIDE_DOWN_IN10 = _createSlideInY(-10);
var SLIDE_DOWN_IN20 = _createSlideInY(-20);
var SLIDE_RIGHT_OUT10 = _createSlideOutX(10);
var SLIDE_RIGHT_OUT20 = _createSlideOutX(20);
var SLIDE_RIGHT_OUT40 = _createSlideOutX(40);
var SLIDE_RIGHT_OUT400 = _createSlideOutX(400);
var SLIDE_LEFT_OUT10 = _createSlideOutX(-10);
var SLIDE_LEFT_OUT20 = _createSlideOutX(-20);
var SLIDE_LEFT_OUT40 = _createSlideOutX(-40);
var SLIDE_LEFT_OUT400 = _createSlideOutX(-400);
var SLIDE_UP_OUT10 = _createSlideOutY(-10);
var SLIDE_UP_OUT20 = _createSlideOutY(-20);
var SLIDE_DOWN_OUT10 = _createSlideOutY(10);
var SLIDE_DOWN_OUT20 = _createSlideOutY(20);
var SCALE_UP100 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'scale3d(.98,.98,1)' },
    to: { transform: 'scale3d(1,1,1)' }
});
var SCALE_DOWN98 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'scale3d(1,1,1)' },
    to: { transform: 'scale3d(.98,.98,1)' }
});
var SCALE_DOWN100 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'scale3d(1.03,1.03,1)' },
    to: { transform: 'scale3d(1,1,1)' }
});
var SCALE_UP103 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'scale3d(1,1,1)' },
    to: { transform: 'scale3d(1.03,1.03,1)' }
});
var ROTATE90 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'rotateZ(0deg)' },
    to: { transform: 'rotateZ(90deg)' }
});
var ROTATE_N90 = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    from: { transform: 'rotateZ(0deg)' },
    to: { transform: 'rotateZ(-90deg)' }
});
/**
 * Exporting raw duraction values and easing functions to be used in custom animations
 */
var AnimationVariables = {
    easeFunction1: EASING_FUNCTION_1,
    easeFunction2: EASING_FUNCTION_2,
    durationValue1: DURATION_1,
    durationValue2: DURATION_2,
    durationValue3: DURATION_3,
    durationValue4: DURATION_4
};
/**
 * All Fabric standard animations, exposed as json objects referencing predefined
 * keyframes. These objects can be mixed in with other class definitions.
 */
var AnimationStyles = {
    slideRightIn10: _createAnimation(FADE_IN + "," + SLIDE_RIGHT_IN10, DURATION_3, EASING_FUNCTION_1),
    slideRightIn20: _createAnimation(FADE_IN + "," + SLIDE_RIGHT_IN20, DURATION_3, EASING_FUNCTION_1),
    slideRightIn40: _createAnimation(FADE_IN + "," + SLIDE_RIGHT_IN40, DURATION_3, EASING_FUNCTION_1),
    slideRightIn400: _createAnimation(FADE_IN + "," + SLIDE_RIGHT_IN400, DURATION_3, EASING_FUNCTION_1),
    slideLeftIn10: _createAnimation(FADE_IN + "," + SLIDE_LEFT_IN10, DURATION_3, EASING_FUNCTION_1),
    slideLeftIn20: _createAnimation(FADE_IN + "," + SLIDE_LEFT_IN20, DURATION_3, EASING_FUNCTION_1),
    slideLeftIn40: _createAnimation(FADE_IN + "," + SLIDE_LEFT_IN40, DURATION_3, EASING_FUNCTION_1),
    slideLeftIn400: _createAnimation(FADE_IN + "," + SLIDE_LEFT_IN400, DURATION_3, EASING_FUNCTION_1),
    slideUpIn10: _createAnimation(FADE_IN + "," + SLIDE_UP_IN10, DURATION_3, EASING_FUNCTION_1),
    slideUpIn20: _createAnimation(FADE_IN + "," + SLIDE_UP_IN20, DURATION_3, EASING_FUNCTION_1),
    slideDownIn10: _createAnimation(FADE_IN + "," + SLIDE_DOWN_IN10, DURATION_3, EASING_FUNCTION_1),
    slideDownIn20: _createAnimation(FADE_IN + "," + SLIDE_DOWN_IN20, DURATION_3, EASING_FUNCTION_1),
    slideRightOut10: _createAnimation(FADE_OUT + "," + SLIDE_RIGHT_OUT10, DURATION_3, EASING_FUNCTION_1),
    slideRightOut20: _createAnimation(FADE_OUT + "," + SLIDE_RIGHT_OUT20, DURATION_3, EASING_FUNCTION_1),
    slideRightOut40: _createAnimation(FADE_OUT + "," + SLIDE_RIGHT_OUT40, DURATION_3, EASING_FUNCTION_1),
    slideRightOut400: _createAnimation(FADE_OUT + "," + SLIDE_RIGHT_OUT400, DURATION_3, EASING_FUNCTION_1),
    slideLeftOut10: _createAnimation(FADE_OUT + "," + SLIDE_LEFT_OUT10, DURATION_3, EASING_FUNCTION_1),
    slideLeftOut20: _createAnimation(FADE_OUT + "," + SLIDE_LEFT_OUT20, DURATION_3, EASING_FUNCTION_1),
    slideLeftOut40: _createAnimation(FADE_OUT + "," + SLIDE_LEFT_OUT40, DURATION_3, EASING_FUNCTION_1),
    slideLeftOut400: _createAnimation(FADE_OUT + "," + SLIDE_LEFT_OUT400, DURATION_3, EASING_FUNCTION_1),
    slideUpOut10: _createAnimation(FADE_OUT + "," + SLIDE_UP_OUT10, DURATION_3, EASING_FUNCTION_1),
    slideUpOut20: _createAnimation(FADE_OUT + "," + SLIDE_UP_OUT20, DURATION_3, EASING_FUNCTION_1),
    slideDownOut10: _createAnimation(FADE_OUT + "," + SLIDE_DOWN_OUT10, DURATION_3, EASING_FUNCTION_1),
    slideDownOut20: _createAnimation(FADE_OUT + "," + SLIDE_DOWN_OUT20, DURATION_3, EASING_FUNCTION_1),
    scaleUpIn100: _createAnimation(FADE_IN + "," + SCALE_UP100, DURATION_3, EASING_FUNCTION_1),
    scaleDownIn100: _createAnimation(FADE_IN + "," + SCALE_DOWN100, DURATION_3, EASING_FUNCTION_1),
    scaleUpOut103: _createAnimation(FADE_OUT + "," + SCALE_UP103, DURATION_1, EASING_FUNCTION_2),
    scaleDownOut98: _createAnimation(FADE_OUT + "," + SCALE_DOWN98, DURATION_1, EASING_FUNCTION_2),
    fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),
    fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),
    fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),
    fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),
    fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),
    fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),
    fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),
    fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),
    rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),
    rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2)
    // expandCollapse 100/200/400, delay 100/200
};
function _createAnimation(animationName, animationDuration, animationTimingFunction) {
    return {
        animationName: animationName,
        animationDuration: animationDuration,
        animationTimingFunction: animationTimingFunction,
        animationFillMode: 'both'
    };
}
function _createSlideInX(fromX) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { transform: "translate3d(" + fromX + "px,0,0)" },
        to: { transform: "translate3d(0,0,0)" }
    });
}
function _createSlideInY(fromY) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { transform: "translate3d(0," + fromY + "px,0)" },
        to: { transform: "translate3d(0,0,0)" }
    });
}
function _createSlideOutX(toX) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { transform: "translate3d(0,0,0)" },
        to: { transform: "translate3d(" + toX + "px,0,0)" }
    });
}
function _createSlideOutY(toY) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { transform: "translate3d(0,0,0)" },
        to: { transform: "translate3d(0," + toY + "px,0)" }
    });
}


/***/ }),

/***/ "../styling/lib/styles/CommonStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return HighContrastSelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return HighContrastSelectorWhite; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return HighContrastSelectorBlack; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return ScreenWidthMinSmall; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return ScreenWidthMinMedium; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return ScreenWidthMinLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return ScreenWidthMinXLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return ScreenWidthMinXXLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return ScreenWidthMinXXXLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return ScreenWidthMaxSmall; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return ScreenWidthMaxMedium; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return ScreenWidthMaxLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return ScreenWidthMaxXLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return ScreenWidthMaxXXLarge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return ScreenWidthMinUhfMobile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return getScreenSelector; });
var HighContrastSelector = '@media screen and (-ms-high-contrast: active)';
var HighContrastSelectorWhite = '@media screen and (-ms-high-contrast: black-on-white)';
var HighContrastSelectorBlack = '@media screen and (-ms-high-contrast: white-on-black)';
var ScreenWidthMinSmall = 320;
var ScreenWidthMinMedium = 480;
var ScreenWidthMinLarge = 640;
var ScreenWidthMinXLarge = 1024;
var ScreenWidthMinXXLarge = 1366;
var ScreenWidthMinXXXLarge = 1920;
var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;
var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;
var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;
var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;
var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;
var ScreenWidthMinUhfMobile = 768;
function getScreenSelector(min, max) {
    return "@media only screen and (min-width: " + min + "px) and (max-width: " + max + "px)";
}


/***/ }),

/***/ "../styling/lib/styles/DefaultEffects.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return DefaultEffects; });
var DefaultEffects = {
    // commented values are the defaults for Fluent
    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)',
    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)',
    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)',
    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)',
    roundedCorner2: '2px'
};


/***/ }),

/***/ "../styling/lib/styles/DefaultFontStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return DefaultFontStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return registerDefaultFontFaces; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _fonts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/fonts.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/index.js");



// Default urls.
var DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';
// Standard font styling.
var DefaultFontStyles = Object(_fonts__WEBPACK_IMPORTED_MODULE_1__["createFontStyles"])(Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_2__["getLanguage"])());
function _registerFontFace(fontFamily, url, fontWeight, localFontName) {
    fontFamily = "'" + fontFamily + "'";
    var localFontSrc = localFontName !== undefined ? "local('" + localFontName + "')," : '';
    Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["fontFace"])({
        fontFamily: fontFamily,
        src: localFontSrc + ("url('" + url + ".woff2') format('woff2'),") + ("url('" + url + ".woff') format('woff')"),
        fontWeight: fontWeight,
        fontStyle: 'normal',
        fontDisplay: 'swap'
    });
}
function _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {
    if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }
    var urlBase = baseUrl + "/" + cdnFolder + "/" + cdnFontName;
    _registerFontFace(fontFamily, urlBase + '-light', _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].light, localFontName && localFontName + ' Light');
    _registerFontFace(fontFamily, urlBase + '-semilight', _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semilight, localFontName && localFontName + ' SemiLight');
    _registerFontFace(fontFamily, urlBase + '-regular', _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].regular, localFontName);
    _registerFontFace(fontFamily, urlBase + '-semibold', _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semibold, localFontName && localFontName + ' SemiBold');
}
function registerDefaultFontFaces(baseUrl) {
    if (baseUrl) {
        var fontUrl = baseUrl + "/fonts";
        // Produce @font-face definitions for all supported web fonts.
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Thai, 'leelawadeeui-thai', 'leelawadeeui');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Arabic, 'segoeui-arabic');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Cyrillic, 'segoeui-cyrillic');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].EastEuropean, 'segoeui-easteuropean');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Greek, 'segoeui-greek');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Hebrew, 'segoeui-hebrew');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Vietnamese, 'segoeui-vietnamese');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontFamilies"].Selawik, 'selawik', 'selawik');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Armenian, 'segoeui-armenian');
        _registerFontFaceSet(fontUrl, _fonts__WEBPACK_IMPORTED_MODULE_1__["LocalizedFontNames"].Georgian, 'segoeui-georgian');
        // Leelawadee UI (Thai) does not have a 'light' weight, so we override
        // the font-face generated above to use the 'semilight' weight instead.
        _registerFontFace('Leelawadee UI Web', fontUrl + "/leelawadeeui-thai/leelawadeeui-semilight", _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].light);
        // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override
        // the font-face generated above to use the 'bold' weight instead.
        _registerFontFace('Leelawadee UI Web', fontUrl + "/leelawadeeui-thai/leelawadeeui-bold", _fonts__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semibold);
    }
}
/**
 * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.
 */
function _getFontBaseUrl() {
    var win = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])();
    // tslint:disable-next-line:no-string-literal no-any
    var fabricConfig = win ? win['FabricConfig'] : undefined;
    return fabricConfig && fabricConfig.fontBaseUrl !== undefined ? fabricConfig.fontBaseUrl : DefaultBaseUrl;
}
/**
 * Register the font faces.
 */
registerDefaultFontFaces(_getFontBaseUrl());


/***/ }),

/***/ "../styling/lib/styles/DefaultPalette.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return DefaultPalette; });
// When adding or removing a color, make sure you keep this consistent with IColorClassNames by adding the color variants.
var DefaultPalette = {
    themeDarker: '#004578',
    themeDark: '#005a9e',
    themeDarkAlt: '#106ebe',
    themePrimary: '#0078d4',
    themeSecondary: '#2b88d8',
    themeTertiary: '#71afe5',
    themeLight: '#c7e0f4',
    themeLighter: '#deecf9',
    themeLighterAlt: '#eff6fc',
    black: '#000000',
    blackTranslucent40: 'rgba(0,0,0,.4)',
    neutralDark: '#201f1e',
    neutralPrimary: '#323130',
    neutralPrimaryAlt: '#3b3a39',
    neutralSecondary: '#605e5c',
    neutralSecondaryAlt: '#8a8886',
    neutralTertiary: '#a19f9d',
    neutralTertiaryAlt: '#c8c6c4',
    neutralQuaternary: '#d2d0ce',
    neutralQuaternaryAlt: '#e1dfdd',
    neutralLight: '#edebe9',
    neutralLighter: '#f3f2f1',
    neutralLighterAlt: '#faf9f8',
    accent: '#0078d4',
    white: '#ffffff',
    whiteTranslucent40: 'rgba(255,255,255,.4)',
    yellowDark: '#d29200',
    yellow: '#ffb900',
    yellowLight: '#fff100',
    orange: '#d83b01',
    orangeLight: '#ea4300',
    orangeLighter: '#ff8c00',
    redDark: '#a4262c',
    red: '#e81123',
    magentaDark: '#5c005c',
    magenta: '#b4009e',
    magentaLight: '#e3008c',
    purpleDark: '#32145a',
    purple: '#5c2d91',
    purpleLight: '#b4a0ff',
    blueDark: '#002050',
    blueMid: '#00188f',
    blue: '#0078d4',
    blueLight: '#00bcf2',
    tealDark: '#004b50',
    teal: '#008272',
    tealLight: '#00b294',
    greenDark: '#004b1c',
    green: '#107c10',
    greenLight: '#bad80a'
};


/***/ }),

/***/ "../styling/lib/styles/DefaultSpacing.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultSpacing", function() { return DefaultSpacing; });
var DefaultSpacing = {
    s2: '4px',
    s1: '8px',
    m: '16px',
    l1: '20px',
    l2: '32px'
};


/***/ }),

/***/ "../styling/lib/styles/GeneralStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return normalize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return noWrap; });
// This file mimics styles and mixins from _General.Mixins.scss
var normalize = {
    boxShadow: 'none',
    margin: 0,
    padding: 0,
    boxSizing: 'border-box'
};
var noWrap = {
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap'
};


/***/ }),

/***/ "../styling/lib/styles/PulsingBeaconAnimationStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return PulsingBeaconAnimationStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/index.js");


var DEFAULT_DURATION = '14s';
var DEFAULT_DELAY = '2s';
var DEFAULT_ITERATION_COUNT = '1';
function _continuousPulseStepOne(beaconColorOne, innerDimension) {
    return {
        borderColor: beaconColorOne,
        borderWidth: '0px',
        width: innerDimension,
        height: innerDimension
    };
}
function _continuousPulseStepTwo(borderWidth) {
    return {
        opacity: 1,
        borderWidth: borderWidth
    };
}
function _continuousPulseStepThree() {
    return {
        opacity: 1
    };
}
function _continuousPulseStepFour(beaconColorTwo, outerDimension) {
    return {
        borderWidth: '0',
        width: outerDimension,
        height: outerDimension,
        opacity: 0,
        borderColor: beaconColorTwo
    };
}
function _continuousPulseStepFive(beaconColorOne, innerDimension) {
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _continuousPulseStepOne(beaconColorOne, innerDimension), {
        opacity: 0
    });
}
function _continuousPulseAnimationDouble(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__["keyframes"])({
        '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),
        '1.42%': _continuousPulseStepTwo(borderWidth),
        '3.57%': _continuousPulseStepThree(),
        '7.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),
        '8%': _continuousPulseStepFive(beaconColorOne, innerDimension),
        '29.99%': _continuousPulseStepFive(beaconColorOne, innerDimension),
        '30%': _continuousPulseStepOne(beaconColorOne, innerDimension),
        '31.42%': _continuousPulseStepTwo(borderWidth),
        '33.57%': _continuousPulseStepThree(),
        '37.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),
        '38%': _continuousPulseStepFive(beaconColorOne, innerDimension),
        '79.42%': _continuousPulseStepFive(beaconColorOne, innerDimension),
        '79.43': _continuousPulseStepOne(beaconColorOne, innerDimension),
        '81.85': _continuousPulseStepTwo(borderWidth),
        '83.42': _continuousPulseStepThree(),
        '87%': _continuousPulseStepFour(beaconColorTwo, outerDimension),
        '100%': {}
    });
}
function _continuousPulseAnimationSingle(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {
    return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__["keyframes"])({
        '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),
        '14.2%': _continuousPulseStepTwo(borderWidth),
        '35.7%': _continuousPulseStepThree(),
        '71.4%': _continuousPulseStepFour(beaconColorTwo, outerDimension),
        '100%': {}
    });
}
function _createDefaultAnimation(animationName, delayLength) {
    return {
        animationName: animationName,
        animationIterationCount: DEFAULT_ITERATION_COUNT,
        animationDuration: DEFAULT_DURATION,
        animationDelay: delayLength || DEFAULT_DELAY
    };
}
var PulsingBeaconAnimationStyles = {
    continuousPulseAnimationDouble: _continuousPulseAnimationDouble,
    continuousPulseAnimationSingle: _continuousPulseAnimationSingle,
    createDefaultAnimation: _createDefaultAnimation
};


/***/ }),

/***/ "../styling/lib/styles/fonts.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocalizedFontNames", function() { return LocalizedFontNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocalizedFontFamilies", function() { return LocalizedFontFamilies; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return FontSizes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return FontWeights; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return IconFontSizes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return createFontStyles; });
// Fallback fonts, if specified system or web fonts are unavailable.
var FontFamilyFallbacks = "'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif";
// Font face names to be registered.
var LocalizedFontNames;
(function (LocalizedFontNames) {
    LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';
    LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';
    LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';
    LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';
    LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';
    LocalizedFontNames.Thai = 'Leelawadee UI Web';
    LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';
    LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';
    LocalizedFontNames.Selawik = 'Selawik Web';
    LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';
    LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';
})(LocalizedFontNames || (LocalizedFontNames = {}));
// Font families with fallbacks, for the general regions.
var LocalizedFontFamilies;
(function (LocalizedFontFamilies) {
    LocalizedFontFamilies.Arabic = "'" + LocalizedFontNames.Arabic + "'";
    LocalizedFontFamilies.ChineseSimplified = "'Microsoft Yahei UI', Verdana, Simsun";
    LocalizedFontFamilies.ChineseTraditional = "'Microsoft Jhenghei UI', Pmingliu";
    LocalizedFontFamilies.Cyrillic = "'" + LocalizedFontNames.Cyrillic + "'";
    LocalizedFontFamilies.EastEuropean = "'" + LocalizedFontNames.EastEuropean + "'";
    LocalizedFontFamilies.Greek = "'" + LocalizedFontNames.Greek + "'";
    LocalizedFontFamilies.Hebrew = "'" + LocalizedFontNames.Hebrew + "'";
    LocalizedFontFamilies.Hindi = "'Nirmala UI'";
    LocalizedFontFamilies.Japanese = "'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka";
    LocalizedFontFamilies.Korean = "'Malgun Gothic', Gulim";
    LocalizedFontFamilies.Selawik = "'" + LocalizedFontNames.Selawik + "'";
    LocalizedFontFamilies.Thai = "'Leelawadee UI Web', 'Kmer UI'";
    LocalizedFontFamilies.Vietnamese = "'" + LocalizedFontNames.Vietnamese + "'";
    LocalizedFontFamilies.WestEuropean = "'" + LocalizedFontNames.WestEuropean + "'";
    LocalizedFontFamilies.Armenian = "'" + LocalizedFontNames.Armenian + "'";
    LocalizedFontFamilies.Georgian = "'" + LocalizedFontNames.Georgian + "'";
})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));
// By default, we favor system fonts for the default.
// All localized fonts use a web font and never use the system font.
var defaultFontFamily = "'Segoe UI', '" + LocalizedFontNames.WestEuropean + "'";
// Mapping of language prefix to to font family.
var LanguageToFontMap = {
    ar: LocalizedFontFamilies.Arabic,
    bg: LocalizedFontFamilies.Cyrillic,
    cs: LocalizedFontFamilies.EastEuropean,
    el: LocalizedFontFamilies.Greek,
    et: LocalizedFontFamilies.EastEuropean,
    he: LocalizedFontFamilies.Hebrew,
    hi: LocalizedFontFamilies.Hindi,
    hr: LocalizedFontFamilies.EastEuropean,
    hu: LocalizedFontFamilies.EastEuropean,
    ja: LocalizedFontFamilies.Japanese,
    kk: LocalizedFontFamilies.EastEuropean,
    ko: LocalizedFontFamilies.Korean,
    lt: LocalizedFontFamilies.EastEuropean,
    lv: LocalizedFontFamilies.EastEuropean,
    pl: LocalizedFontFamilies.EastEuropean,
    ru: LocalizedFontFamilies.Cyrillic,
    sk: LocalizedFontFamilies.EastEuropean,
    'sr-latn': LocalizedFontFamilies.EastEuropean,
    th: LocalizedFontFamilies.Thai,
    tr: LocalizedFontFamilies.EastEuropean,
    uk: LocalizedFontFamilies.Cyrillic,
    vi: LocalizedFontFamilies.Vietnamese,
    'zh-hans': LocalizedFontFamilies.ChineseSimplified,
    'zh-hant': LocalizedFontFamilies.ChineseTraditional,
    hy: LocalizedFontFamilies.Armenian,
    ka: LocalizedFontFamilies.Georgian
};
// Standard font sizes.
var FontSizes;
(function (FontSizes) {
    FontSizes.mini = '10px';
    FontSizes.xSmall = '10px';
    FontSizes.small = '12px';
    FontSizes.smallPlus = '12px';
    FontSizes.medium = '14px';
    FontSizes.mediumPlus = '16px';
    FontSizes.icon = '16px';
    FontSizes.large = '18px';
    FontSizes.xLarge = '20px';
    FontSizes.xLargePlus = '24px';
    FontSizes.xxLarge = '28px';
    FontSizes.xxLargePlus = '32px';
    FontSizes.superLarge = '42px';
    FontSizes.mega = '68px';
})(FontSizes || (FontSizes = {}));
// Standard font weights.
var FontWeights;
(function (FontWeights) {
    FontWeights.light = 100;
    FontWeights.semilight = 300;
    FontWeights.regular = 400;
    FontWeights.semibold = 600;
    FontWeights.bold = 700;
})(FontWeights || (FontWeights = {}));
// Standard Icon Sizes.
var IconFontSizes;
(function (IconFontSizes) {
    IconFontSizes.xSmall = '10px';
    IconFontSizes.small = '12px';
    IconFontSizes.medium = '16px';
    IconFontSizes.large = '20px';
})(IconFontSizes || (IconFontSizes = {}));
function _fontFamilyWithFallbacks(fontFamily) {
    return fontFamily + ", " + FontFamilyFallbacks;
}
function createFontStyles(localeCode) {
    var localizedFont = _getLocalizedFontFamily(localeCode);
    var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);
    var fontStyles = {
        tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),
        xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),
        small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),
        smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),
        medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),
        mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),
        large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),
        xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),
        xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),
        xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),
        xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),
        superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),
        mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback)
    };
    return fontStyles;
}
/**
 * If there is a localized font for this language, return that. Returns undefined if there is no localized font for that language.
 */
function _getLocalizedFontFamily(language) {
    for (var lang in LanguageToFontMap) {
        if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {
            // tslint:disable-next-line:no-any
            return LanguageToFontMap[lang];
        }
    }
    return defaultFontFamily;
}
function _createFont(size, weight, fontFamily) {
    return {
        fontFamily: fontFamily,
        MozOsxFontSmoothing: 'grayscale',
        WebkitFontSmoothing: 'antialiased',
        fontSize: size,
        fontWeight: weight
    };
}


/***/ }),

/***/ "../styling/lib/styles/getFadedOverflowStyle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return getFadedOverflowStyle; });
var DEFAULT_HEIGHT = '50%';
var DEFAULT_WIDTH = 20;
/**
 * - Generates a style used to fade out an overflowing content by defining a style for an :after pseudo element.
 * - Apply it to the :after selector for all combination of states the parent of content might have (normal, hover, selected, focus).
 * - Requires the target to have position set to relative and overflow set to hidden.
 *
 * @example
 * ```tsx
 * // Assuming the following DOM structure and the different background colors coming from the parent holding the content.
 * <div className={classNames.parent}>
 *   <span className={classNames.content}>Overflown Content</span>
 * </div>
 * ```
 * ```ts
 * // This is how the style set would look in Component.styles.ts
 * const { bodyBackground } = theme.semanticColors;
 * const { neutralLighter } = theme.palette;
 *
 * // The second argument of getFadedOverflowStyle function is a string representing a key of ISemanticColors or IPalette.
 *
 * const styles = {
 *   parent: [
 *     backgroundColor: bodyBackground,
 *     selectors: {
 *       '&:hover: {
 *         backgroundColor: neutralLighter
 *       },
 *       '$content:after': {
 *         ...getFadedOverflowStyle(theme, 'bodyBackground')
 *       },
 *       '&:hover $content:after': {
 *         ...getFadedOverflowStyle(theme, 'neutralLighter')
 *       }
 *     }
 *   ],
 *   content: [
 *     width: '100%',
 *     display: 'inline-block',
 *     position: 'relative',
 *     overflow: 'hidden'
 *   ]
 * }
 * ```
 * @param theme - The theme object to use.
 * @param color - The background color to fade out to. Accepts only keys of ISemanticColors or IPalette. Defaults to 'bodyBackground'.
 * @param direction - The direction of the overflow. Defaults to horizontal.
 * @param width - The width of the fading overflow. Vertical direction defaults it to 100% vs 20px when horizontal.
 * @param height - The Height of the fading overflow. Vertical direction defaults it to 50% vs 100% when horizontal.
 * @returns The style object.
 */
function getFadedOverflowStyle(theme, color, direction, width, height) {
    if (color === void 0) { color = 'bodyBackground'; }
    if (direction === void 0) { direction = 'horizontal'; }
    if (width === void 0) { width = getDefaultValue('width', direction); }
    if (height === void 0) { height = getDefaultValue('height', direction); }
    // Get the color value string from the theme semanticColors or palette.
    var colorValue = theme.semanticColors[color] || theme.palette[color];
    // Get the red, green, blue values of the colorValue.
    var rgbColor = color2rgb(colorValue);
    // Apply opacity 0 to serve as a start color of the gradient.
    var rgba = "rgba(" + rgbColor.r + ", " + rgbColor.g + ", " + rgbColor.b + ", 0)";
    // Get the direction of the gradient.
    var gradientDirection = direction === 'vertical' ? 'to bottom' : 'to right'; // mergeStyles take care of RTL direction.
    return {
        content: '""',
        position: 'absolute',
        right: 0,
        bottom: 0,
        width: width,
        height: height,
        pointerEvents: 'none',
        backgroundImage: "linear-gradient(" + gradientDirection + ", " + rgba + " 0%, " + colorValue + " 100%)"
    };
}
// TODO consider moving this to a separate module along with some more color functions from OUFR/utilities.
/**
 * Helper function to convert a string hex color to an RGB object.
 *
 * @param colorValue - Color to be converted from hex to rgba.
 */
function color2rgb(colorValue) {
    if (colorValue[0] === '#') {
        // If it's a hex code
        return {
            r: parseInt(colorValue.slice(1, 3), 16),
            g: parseInt(colorValue.slice(3, 5), 16),
            b: parseInt(colorValue.slice(5, 7), 16)
        };
    }
    else if (colorValue.indexOf('rgba(') === 0) {
        // If it's an rgba color string
        colorValue = colorValue.match(/rgba\(([^)]+)\)/)[1];
        var parts = colorValue.split(/ *, */).map(Number);
        return {
            r: parts[0],
            g: parts[1],
            b: parts[2]
        };
    }
    // The only remaining possibility is transparent.
    return {
        r: 255,
        g: 255,
        b: 255
    };
}
/**
 * Helper function to get the default values for parameters of main function.
 *
 * @param style - Which style to get the default value for.
 * @param direction - What direction to take into consideration.
 */
function getDefaultValue(style, direction) {
    if (style === 'width') {
        return direction === 'horizontal' ? DEFAULT_WIDTH : '100%';
    }
    else {
        return direction === 'vertical' ? DEFAULT_HEIGHT : '100%';
    }
}


/***/ }),

/***/ "../styling/lib/styles/getFocusStyle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return getFocusStyle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return focusClear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return getFocusOutlineStyle; });
/* harmony import */ var _CommonStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/styles/CommonStyles.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _zIndexes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/styles/zIndexes.js");



function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly) {
    if (typeof insetOrOptions === 'number' || !insetOrOptions) {
        return _getFocusStyleInternal(theme, { inset: insetOrOptions, position: position, highContrastStyle: highContrastStyle, borderColor: borderColor, outlineColor: outlineColor, isFocusedOnly: isFocusedOnly });
    }
    else {
        return _getFocusStyleInternal(theme, insetOrOptions);
    }
}
function _getFocusStyleInternal(theme, options) {
    var _a, _b;
    if (options === void 0) { options = {}; }
    var _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h;
    return {
        // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.
        outline: 'transparent',
        // Requirement because pseudo-element is absolutely positioned.
        position: position,
        selectors: (_a = {
                // Clear the focus border in Firefox.
                // Reference: http://stackoverflow.com/a/199319/1436671
                '::-moz-focus-inner': {
                    border: '0'
                }
            },
            // When the element that uses this mixin is in a :focus state, add a pseudo-element to
            // create a border.
            _a["." + _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &" + (isFocusedOnly ? ':focus' : '') + ":after"] = {
                content: '""',
                position: 'absolute',
                left: inset + 1,
                top: inset + 1,
                bottom: inset + 1,
                right: inset + 1,
                border: width + "px solid " + borderColor,
                outline: width + "px solid " + outlineColor,
                zIndex: _zIndexes__WEBPACK_IMPORTED_MODULE_2__["ZIndexes"].FocusStyle,
                selectors: (_b = {},
                    _b[_CommonStyles__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = highContrastStyle,
                    _b)
            },
            _a)
    };
}
/**
 * Generates style to clear browser specific focus styles.
 */
function focusClear() {
    return {
        selectors: {
            '&::-moz-focus-inner': {
                // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671
                border: 0
            },
            '&': {
                // Clear browser specific focus styles and use transparent as placeholder for focus style
                outline: 'transparent'
            }
        }
    };
}
/**
 * Generates a style which can be used to set a border on focus.
 *
 * @param theme - The theme object to use.
 * @param inset - The number of pixels to inset the border (default 0)
 * @param width - The border width in pixels (default 1)
 * @param color - Color of the outline (default `theme.palette.neutralSecondary`)
 * @returns The style object.
 */
function getFocusOutlineStyle(theme, inset, width, color) {
    var _a;
    if (inset === void 0) { inset = 0; }
    if (width === void 0) { width = 1; }
    return {
        selectors: (_a = {},
            _a[":global(" + _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + ") &:focus"] = {
                outline: width + " solid " + (color || theme.palette.neutralSecondary),
                outlineOffset: -inset + "px"
            },
            _a)
    };
}


/***/ }),

/***/ "../styling/lib/styles/getGlobalClassNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return getGlobalClassNames; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");


/**
 * Internal memoized function which simply takes in the class map and the
 * disable boolean. These immutable values can be memoized.
 */
var _getGlobalClassNames = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (classNames, disableGlobalClassNames) {
    var styleSheet = _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
    if (disableGlobalClassNames) {
        // disable global classnames
        return Object.keys(classNames).reduce(function (acc, className) {
            acc[className] = styleSheet.getClassName(classNames[className]);
            return acc;
        }, {});
    }
    // use global classnames
    return classNames;
});
/**
 * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`
 * Note that calls to this function are memoized.
 *
 * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in
 * the same instance on each call to benefit from memoization.
 * @param theme - The theme to check the flag on
 * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.
 */
function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {
    return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);
}


/***/ }),

/***/ "../styling/lib/styles/getPlaceholderStyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return getPlaceholderStyles; });
/**
 * Generates placeholder style for each of the browsers supported by office-ui-fabric-react.
 * @param styles - The style to use.
 * @returns The placeholder style object for each browser depending on the placeholder directive it uses.
 */
function getPlaceholderStyles(styles) {
    return {
        selectors: {
            '::placeholder': styles,
            ':-ms-input-placeholder': styles,
            '::-ms-input-placeholder': styles // Edge
        }
    };
}


/***/ }),

/***/ "../styling/lib/styles/hiddenContentStyle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return hiddenContentStyle; });
var hiddenContentStyle = {
    position: 'absolute',
    width: 1,
    height: 1,
    margin: -1,
    padding: 0,
    border: 0,
    overflow: 'hidden'
};


/***/ }),

/***/ "../styling/lib/styles/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _AnimationStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/styles/AnimationStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return _AnimationStyles__WEBPACK_IMPORTED_MODULE_0__["AnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return _AnimationStyles__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"]; });

/* harmony import */ var _DefaultPalette__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/styles/DefaultPalette.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return _DefaultPalette__WEBPACK_IMPORTED_MODULE_1__["DefaultPalette"]; });

/* harmony import */ var _DefaultEffects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/styles/DefaultEffects.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return _DefaultEffects__WEBPACK_IMPORTED_MODULE_2__["DefaultEffects"]; });

/* harmony import */ var _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../styling/lib/styles/DefaultFontStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_3__["DefaultFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_3__["registerDefaultFontFaces"]; });

/* harmony import */ var _fonts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../styling/lib/styles/fonts.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return _fonts__WEBPACK_IMPORTED_MODULE_4__["FontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return _fonts__WEBPACK_IMPORTED_MODULE_4__["FontWeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return _fonts__WEBPACK_IMPORTED_MODULE_4__["IconFontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return _fonts__WEBPACK_IMPORTED_MODULE_4__["createFontStyles"]; });

/* harmony import */ var _getFocusStyle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../styling/lib/styles/getFocusStyle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return _getFocusStyle__WEBPACK_IMPORTED_MODULE_5__["getFocusStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return _getFocusStyle__WEBPACK_IMPORTED_MODULE_5__["focusClear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return _getFocusStyle__WEBPACK_IMPORTED_MODULE_5__["getFocusOutlineStyle"]; });

/* harmony import */ var _hiddenContentStyle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../styling/lib/styles/hiddenContentStyle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return _hiddenContentStyle__WEBPACK_IMPORTED_MODULE_6__["hiddenContentStyle"]; });

/* harmony import */ var _PulsingBeaconAnimationStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../styling/lib/styles/PulsingBeaconAnimationStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return _PulsingBeaconAnimationStyles__WEBPACK_IMPORTED_MODULE_7__["PulsingBeaconAnimationStyles"]; });

/* harmony import */ var _getGlobalClassNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../styling/lib/styles/getGlobalClassNames.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return _getGlobalClassNames__WEBPACK_IMPORTED_MODULE_8__["getGlobalClassNames"]; });

/* harmony import */ var _scheme__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("../styling/lib/styles/scheme.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return _scheme__WEBPACK_IMPORTED_MODULE_9__["getThemedContext"]; });

/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("../styling/lib/styles/theme.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["ThemeSettingName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["getTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["loadTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["createTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["registerOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return _theme__WEBPACK_IMPORTED_MODULE_10__["removeOnThemeChangeCallback"]; });

/* harmony import */ var _CommonStyles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("../styling/lib/styles/CommonStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["HighContrastSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["HighContrastSelectorWhite"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["HighContrastSelectorBlack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinXXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMaxSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMaxMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMaxLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMaxXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMaxXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["ScreenWidthMinUhfMobile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return _CommonStyles__WEBPACK_IMPORTED_MODULE_11__["getScreenSelector"]; });

/* harmony import */ var _GeneralStyles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("../styling/lib/styles/GeneralStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return _GeneralStyles__WEBPACK_IMPORTED_MODULE_12__["normalize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return _GeneralStyles__WEBPACK_IMPORTED_MODULE_12__["noWrap"]; });

/* harmony import */ var _getFadedOverflowStyle__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("../styling/lib/styles/getFadedOverflowStyle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return _getFadedOverflowStyle__WEBPACK_IMPORTED_MODULE_13__["getFadedOverflowStyle"]; });

/* harmony import */ var _getPlaceholderStyles__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("../styling/lib/styles/getPlaceholderStyles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return _getPlaceholderStyles__WEBPACK_IMPORTED_MODULE_14__["getPlaceholderStyles"]; });

/* harmony import */ var _zIndexes__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("../styling/lib/styles/zIndexes.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _zIndexes__WEBPACK_IMPORTED_MODULE_15__["ZIndexes"]; });



















/***/ }),

/***/ "../styling/lib/styles/scheme.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return getThemedContext; });
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/index.js");

/**
 * @internal
 * This function is still in experimental phase in support of Foundation experimental development. Its API signature and existence
 * are subject to change.
 *
 * Modify context to activate the specified scheme or theme. For schemes, look in context (if available) and fall back to global
 * Customizations. If both scheme and theme are specified, scheme will be looked up in theme. In this case, scheme must be
 * present in theme arg, otherwise new context will default to theme arg (there is no fallback to settings to look up scheme.)
 *
 * @param context - Context in which to get schemed customizations.
 * @param scheme - Scheme to get customizations for from theme arg (if supplied) OR from context and global settings.
 * @param theme - Theme to merge into context.
 * @returns modified schemed context if scheme is valid and not already applied, unmodified context otherwise.
 */
function getThemedContext(context, scheme, theme) {
    var newContext = context;
    var newSettings;
    // Only fall back to context and customizations when theme arg is not provided.
    var schemeSource = theme || _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["Customizations"].getSettings(['theme'], undefined, context.customizations).theme;
    if (theme) {
        newSettings = { theme: theme };
    }
    var schemeTheme = scheme && schemeSource && schemeSource.schemes && schemeSource.schemes[scheme];
    // These first two checks are logically redundant but TS doesn't infer schemeSource.schemes is defined when schemeTheme is defined.
    if (schemeSource && schemeTheme && schemeSource !== schemeTheme) {
        newSettings = { theme: schemeTheme };
        newSettings.theme.schemes = schemeSource.schemes;
    }
    if (newSettings) {
        newContext = {
            customizations: {
                settings: Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["mergeSettings"])(context.customizations.settings, newSettings),
                scopedSettings: context.customizations.scopedSettings
            }
        };
    }
    return newContext;
}


/***/ }),

/***/ "../styling/lib/styles/theme.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return ThemeSettingName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return getTheme; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return registerOnThemeChangeCallback; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return removeOnThemeChangeCallback; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return loadTheme; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return createTheme; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/styles/DefaultFontStyles.js");
/* harmony import */ var _DefaultPalette__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../styling/lib/styles/DefaultPalette.js");
/* harmony import */ var _DefaultSpacing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../styling/lib/styles/DefaultSpacing.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _DefaultEffects__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../styling/lib/styles/DefaultEffects.js");
var _a;







var _theme = createTheme({
    palette: _DefaultPalette__WEBPACK_IMPORTED_MODULE_3__["DefaultPalette"],
    semanticColors: _makeSemanticColorsFromPalette(_DefaultPalette__WEBPACK_IMPORTED_MODULE_3__["DefaultPalette"], false, false),
    fonts: _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_2__["DefaultFontStyles"],
    isInverted: false,
    disableGlobalClassNames: false
});
var _onThemeChangeCallbacks = [];
var ThemeSettingName = 'theme';
if (!_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Customizations"].getSettings([ThemeSettingName]).theme) {
    var win = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getWindow"])();
    // tslint:disable:no-string-literal no-any
    if (win && win['FabricConfig'] && win['FabricConfig'].theme) {
        _theme = createTheme(win['FabricConfig'].theme);
    }
    // tslint:enable:no-string-literal no-any
    // Set the default theme.
    _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Customizations"].applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));
}
/**
 * Gets the theme object
 * @param depComments - Whether to include deprecated tags as comments for deprecated slots.
 */
function getTheme(depComments) {
    if (depComments === void 0) { depComments = false; }
    if (depComments === true) {
        _theme = createTheme({}, depComments);
    }
    return _theme;
}
/**
 * Registers a callback that gets called whenever the theme changes.
 * This should only be used when the component cannot automatically get theme changes through its state.
 * This will not register duplicate callbacks.
 */
function registerOnThemeChangeCallback(callback) {
    if (_onThemeChangeCallbacks.indexOf(callback) === -1) {
        _onThemeChangeCallbacks.push(callback);
    }
}
/**
 * See registerOnThemeChangeCallback().
 * Removes previously registered callbacks.
 */
function removeOnThemeChangeCallback(callback) {
    var i = _onThemeChangeCallbacks.indexOf(callback);
    if (i === -1) {
        return;
    }
    _onThemeChangeCallbacks.splice(i, 1);
}
/**
 * Applies the theme, while filling in missing slots.
 * @param theme - Partial theme object.
 * @param depComments - Whether to include deprecated tags as comments for deprecated slots.
 */
function loadTheme(theme, depComments) {
    var _a;
    if (depComments === void 0) { depComments = false; }
    _theme = createTheme(theme, depComments);
    // Invoke the legacy method of theming the page as well.
    Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_5__["loadTheme"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _theme.palette, _theme.semanticColors, _theme.effects, _loadFonts(_theme)));
    _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Customizations"].applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));
    _onThemeChangeCallbacks.forEach(function (callback) {
        try {
            callback(_theme);
        }
        catch (e) {
            // don't let a bad callback break everything else
        }
    });
    return _theme;
}
/**
 * Loads font variables into a JSON object.
 * @param theme - The theme object
 */
function _loadFonts(theme) {
    var lines = {};
    for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {
        var fontName = _a[_i];
        var font = theme.fonts[fontName];
        for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {
            var propName = _c[_b];
            var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);
            var value = font[propName];
            if (propName === 'fontSize' && typeof value === 'number') {
                // if it's a number, convert it to px by default like our theming system does
                value = value + 'px';
            }
            lines[name_1] = value;
        }
    }
    return lines;
}
/**
 * Creates a custom theme definition which can be used with the Customizer.
 * @param theme - Partial theme object.
 * @param depComments - Whether to include deprecated tags as comments for deprecated slots.
 */
function createTheme(theme, depComments) {
    if (depComments === void 0) { depComments = false; }
    var newPalette = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _DefaultPalette__WEBPACK_IMPORTED_MODULE_3__["DefaultPalette"], theme.palette);
    if (!theme.palette || !theme.palette.accent) {
        newPalette.accent = newPalette.themePrimary;
    }
    // mix in custom overrides with good slots first, since custom overrides might be used in fixing deprecated slots
    var newSemanticColors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _makeSemanticColorsFromPalette(newPalette, !!theme.isInverted, depComments), theme.semanticColors);
    var defaultFontStyles = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _DefaultFontStyles__WEBPACK_IMPORTED_MODULE_2__["DefaultFontStyles"]);
    if (theme.defaultFontStyle) {
        for (var _i = 0, _a = Object.keys(defaultFontStyles); _i < _a.length; _i++) {
            var fontStyle = _a[_i];
            defaultFontStyles[fontStyle] = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["merge"])({}, defaultFontStyles[fontStyle], theme.defaultFontStyle);
        }
    }
    if (theme.fonts) {
        for (var _b = 0, _c = Object.keys(theme.fonts); _b < _c.length; _b++) {
            var fontStyle = _c[_b];
            defaultFontStyles[fontStyle] = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["merge"])({}, defaultFontStyles[fontStyle], theme.fonts[fontStyle]);
        }
    }
    return {
        palette: newPalette,
        fonts: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultFontStyles),
        semanticColors: newSemanticColors,
        isInverted: !!theme.isInverted,
        disableGlobalClassNames: !!theme.disableGlobalClassNames,
        spacing: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _DefaultSpacing__WEBPACK_IMPORTED_MODULE_4__["DefaultSpacing"], theme.spacing),
        effects: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _DefaultEffects__WEBPACK_IMPORTED_MODULE_6__["DefaultEffects"], theme.effects)
    };
}
/**
 * Helper to pull a given property name from a given set of sources, in order, if available. Otherwise returns the property name.
 */
function _expandFrom(propertyName) {
    var maps = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        maps[_i - 1] = arguments[_i];
    }
    if (propertyName) {
        for (var _a = 0, maps_1 = maps; _a < maps_1.length; _a++) {
            var map = maps_1[_a];
            if (map[propertyName]) {
                return map[propertyName];
            }
        }
    }
    return propertyName;
}
// Generates all the semantic slot colors based on the Fabric palette.
// We'll use these as fallbacks for semantic slots that the passed in theme did not define.
function _makeSemanticColorsFromPalette(p, isInverted, depComments) {
    var toReturn = {
        bodyBackground: p.white,
        bodyBackgroundHovered: p.neutralLighter,
        bodyBackgroundChecked: p.neutralLight,
        bodyStandoutBackground: p.neutralLighterAlt,
        bodyFrameBackground: p.white,
        bodyFrameDivider: p.neutralLight,
        bodyText: p.neutralPrimary,
        bodyTextChecked: p.black,
        bodySubtext: p.neutralSecondary,
        bodyDivider: p.neutralLight,
        disabledBackground: p.neutralLighter,
        disabledText: p.neutralTertiary,
        disabledSubtext: p.neutralQuaternary,
        disabledBodyText: p.neutralTertiary,
        disabledBodySubtext: p.neutralTertiaryAlt,
        disabledBorder: p.neutralTertiaryAlt,
        focusBorder: p.neutralSecondary,
        variantBorder: p.neutralLight,
        variantBorderHovered: p.neutralTertiary,
        defaultStateBackground: p.neutralLighterAlt,
        errorText: !isInverted ? p.redDark : '#ff5f5f',
        warningText: !isInverted ? '#333333' : '#ffffff',
        successText: !isInverted ? '#107C10' : '#92c353',
        errorBackground: !isInverted ? 'rgba(245, 135, 145, .2)' : 'rgba(232, 17, 35, .5)',
        blockingBackground: !isInverted ? 'rgba(250, 65, 0, .2)' : 'rgba(234, 67, 0, .5)',
        warningBackground: !isInverted ? 'rgba(255, 200, 10, .2)' : 'rgba(255, 251, 0, .6)',
        warningHighlight: !isInverted ? '#ffb900' : '#fff100',
        successBackground: !isInverted ? 'rgba(95, 210, 85, .2)' : 'rgba(186, 216, 10, .4)',
        inputBorder: p.neutralSecondaryAlt,
        inputBorderHovered: p.neutralPrimary,
        inputBackground: p.white,
        inputBackgroundChecked: p.themePrimary,
        inputBackgroundCheckedHovered: p.themeDark,
        inputPlaceholderBackgroundChecked: p.themeLighter,
        inputForegroundChecked: p.white,
        inputIcon: p.themePrimary,
        inputIconHovered: p.themeDark,
        inputIconDisabled: p.neutralTertiary,
        inputFocusBorderAlt: p.themePrimary,
        smallInputBorder: p.neutralSecondary,
        inputText: p.neutralPrimary,
        inputTextHovered: p.neutralDark,
        inputPlaceholderText: p.neutralSecondary,
        buttonBackground: p.white,
        buttonBackgroundChecked: p.neutralTertiaryAlt,
        buttonBackgroundHovered: p.neutralLighter,
        buttonBackgroundCheckedHovered: p.neutralLight,
        buttonBackgroundPressed: p.neutralLight,
        buttonBackgroundDisabled: p.neutralLighter,
        buttonBorder: p.neutralSecondaryAlt,
        buttonText: p.neutralPrimary,
        buttonTextHovered: p.neutralDark,
        buttonTextChecked: p.neutralDark,
        buttonTextCheckedHovered: p.black,
        buttonTextPressed: p.neutralDark,
        buttonTextDisabled: p.neutralTertiary,
        buttonBorderDisabled: p.neutralLighter,
        primaryButtonBackground: p.themePrimary,
        primaryButtonBackgroundHovered: p.themeDarkAlt,
        primaryButtonBackgroundPressed: p.themeDark,
        primaryButtonBackgroundDisabled: p.neutralLighter,
        primaryButtonBorder: 'transparent',
        primaryButtonText: p.white,
        primaryButtonTextHovered: p.white,
        primaryButtonTextPressed: p.white,
        primaryButtonTextDisabled: p.neutralQuaternary,
        accentButtonBackground: p.accent,
        accentButtonText: p.white,
        menuBackground: p.white,
        menuDivider: p.neutralTertiaryAlt,
        menuIcon: p.themePrimary,
        menuHeader: p.themePrimary,
        menuItemBackgroundHovered: p.neutralLighter,
        menuItemBackgroundPressed: p.neutralLight,
        menuItemText: p.neutralPrimary,
        menuItemTextHovered: p.neutralDark,
        listBackground: p.white,
        listText: p.neutralPrimary,
        listItemBackgroundHovered: p.neutralLighter,
        listItemBackgroundChecked: p.neutralLight,
        listItemBackgroundCheckedHovered: p.neutralQuaternaryAlt,
        listHeaderBackgroundHovered: p.neutralLighter,
        listHeaderBackgroundPressed: p.neutralLight,
        actionLink: p.neutralPrimary,
        actionLinkHovered: p.neutralDark,
        link: p.themePrimary,
        linkHovered: p.themeDarker,
        // Deprecated slots, second pass by _fixDeprecatedSlots() later for self-referential slots
        listTextColor: '',
        menuItemBackgroundChecked: p.neutralLight
    };
    return _fixDeprecatedSlots(toReturn, depComments);
}
function _fixDeprecatedSlots(s, depComments) {
    // Add @deprecated tag as comment if enabled
    var dep = '';
    if (depComments === true) {
        dep = ' /* @deprecated */';
    }
    s.listTextColor = s.listText + dep;
    s.menuItemBackgroundChecked += dep;
    return s;
}


/***/ }),

/***/ "../styling/lib/styles/zIndexes.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return ZIndexes; });
var ZIndexes;
(function (ZIndexes) {
    ZIndexes.Nav = 1;
    /**
     * @deprecated ScrollablePane
     */
    ZIndexes.ScrollablePane = 1;
    ZIndexes.FocusStyle = 1;
    ZIndexes.Coachmark = 1000;
    ZIndexes.Layer = 1000000;
    ZIndexes.KeytipLayer = 1000001;
})(ZIndexes || (ZIndexes = {}));


/***/ }),

/***/ "../styling/lib/utilities/buildClassMap.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return buildClassMap; });
/* harmony import */ var _MergeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/MergeStyles.js");

/**
 * Builds a class names object from a given map.
 *
 * @param styles - Map of unprocessed styles.
 * @returns Map of property name to class name.
 */
function buildClassMap(styles) {
    var classes = {};
    var _loop_1 = function (styleName) {
        if (styles.hasOwnProperty(styleName)) {
            var className_1;
            Object.defineProperty(classes, styleName, {
                get: function () {
                    if (className_1 === undefined) {
                        // tslint:disable-next-line:no-any
                        className_1 = Object(_MergeStyles__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])(styles[styleName]).toString();
                    }
                    return className_1;
                },
                enumerable: true,
                configurable: true
            });
        }
    };
    for (var styleName in styles) {
        _loop_1(styleName);
    }
    return classes;
}


/***/ }),

/***/ "../styling/lib/utilities/getIconClassName.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return getIconClassName; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/utilities/icons.js");


var defaultIconStyles = {
    display: 'inline-block'
};
/**
 * Gets an icon classname. You should be able to add this classname to an I tag with no
 * additional classnames, and render the icon.
 *
 * @public
 */
function getIconClassName(name) {
    var className = '';
    var icon = Object(_icons__WEBPACK_IMPORTED_MODULE_1__["getIcon"])(name);
    if (icon) {
        className = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])(icon.subset.className, defaultIconStyles, {
            selectors: {
                '::before': {
                    content: "\"" + icon.code + "\""
                }
            }
        });
    }
    return className;
}


/***/ }),

/***/ "../styling/lib/utilities/icons.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return registerIcons; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return unregisterIcons; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return registerIconAlias; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return getIcon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return setIconOptions; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/index.js");



var ICON_SETTING_NAME = 'icons';
var _iconSettings = _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["GlobalSettings"].getValue(ICON_SETTING_NAME, {
    __options: {
        disableWarnings: false,
        warnOnMissingIcons: true
    },
    __remapped: {}
});
// Reset icon registration on stylesheet resets.
var stylesheet = _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__["Stylesheet"].getInstance();
if (stylesheet && stylesheet.onReset) {
    stylesheet.onReset(function () {
        for (var name_1 in _iconSettings) {
            if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {
                _iconSettings[name_1].subset.className = undefined;
            }
        }
    });
}
/**
 * Normalizes an icon name for consistent mapping.
 * Current implementation is to convert the icon name to lower case.
 *
 * @param name - Icon name to normalize.
 * @returns {string} Normalized icon name to use for indexing and mapping.
 */
var normalizeIconName = function (name) { return name.toLowerCase(); };
/**
 * Registers a given subset of icons.
 *
 * @param iconSubset - the icon subset definition.
 */
function registerIcons(iconSubset, options) {
    var subset = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconSubset, { isRegistered: false, className: undefined });
    var icons = iconSubset.icons;
    // Grab options, optionally mix user provided ones on top.
    options = options ? tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _iconSettings.__options, options) : _iconSettings.__options;
    for (var iconName in icons) {
        if (icons.hasOwnProperty(iconName)) {
            var code = icons[iconName];
            var normalizedIconName = normalizeIconName(iconName);
            if (_iconSettings[normalizedIconName]) {
                _warnDuplicateIcon(iconName);
            }
            else {
                _iconSettings[normalizedIconName] = {
                    code: code,
                    subset: subset
                };
            }
        }
    }
}
/**
 * Unregisters icons by name.
 *
 * @param iconNames - List of icons to unregister.
 */
function unregisterIcons(iconNames) {
    var options = _iconSettings.__options;
    var _loop_1 = function (iconName) {
        var normalizedIconName = normalizeIconName(iconName);
        if (_iconSettings[normalizedIconName]) {
            delete _iconSettings[normalizedIconName];
        }
        else {
            // Warn that we are trying to delete an icon that doesn't exist
            if (!options.disableWarnings) {
                Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warn"])("The icon \"" + iconName + "\" tried to unregister but was not registered.");
            }
        }
        // Delete any aliases for this iconName
        if (_iconSettings.__remapped[normalizedIconName]) {
            delete _iconSettings.__remapped[normalizedIconName];
        }
        // Delete any items that were an alias for this iconName
        Object.keys(_iconSettings.__remapped).forEach(function (key) {
            if (_iconSettings.__remapped[key] === normalizedIconName) {
                delete _iconSettings.__remapped[key];
            }
        });
    };
    for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {
        var iconName = iconNames_1[_i];
        _loop_1(iconName);
    }
}
/**
 * Remaps one icon name to another.
 */
function registerIconAlias(iconName, mappedToName) {
    _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);
}
/**
 * Gets an icon definition. If an icon is requested but the subset has yet to be registered,
 * it will get registered immediately.
 *
 * @public
 * @param name - Name of icon.
 */
function getIcon(name) {
    var icon = undefined;
    var options = _iconSettings.__options;
    name = name ? normalizeIconName(name) : '';
    name = _iconSettings.__remapped[name] || name;
    if (name) {
        icon = _iconSettings[name];
        if (icon) {
            var subset = icon.subset;
            if (subset && subset.fontFace) {
                if (!subset.isRegistered) {
                    Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__["fontFace"])(subset.fontFace);
                    subset.isRegistered = true;
                }
                if (!subset.className) {
                    subset.className = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__["mergeStyles"])(subset.style, {
                        fontFamily: subset.fontFace.fontFamily,
                        fontWeight: subset.fontFace.fontWeight || 'normal',
                        fontStyle: subset.fontFace.fontStyle || 'normal'
                    });
                }
            }
        }
        else {
            if (!options.disableWarnings && options.warnOnMissingIcons) {
                Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warn"])("The icon \"" + name + "\" was used but not registered. See http://aka.ms/fabric-icon-usage for more information.");
            }
        }
    }
    return icon;
}
/**
 * Sets the icon options.
 *
 * @public
 */
function setIconOptions(options) {
    _iconSettings.__options = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _iconSettings.__options, options);
}
var _missingIcons = [];
var _missingIconsTimer = undefined;
function _warnDuplicateIcon(iconName) {
    var options = _iconSettings.__options;
    var warningDelay = 2000;
    var maxIconsInMessage = 10;
    if (!options.disableWarnings) {
        _missingIcons.push(iconName);
        if (_missingIconsTimer === undefined) {
            _missingIconsTimer = setTimeout(function () {
                Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warn"])("Some icons were re-registered. Applications should only call registerIcons for any given " +
                    "icon once. Redefining what an icon is may have unintended consequences. Duplicates " +
                    "include: \n" +
                    _missingIcons.slice(0, maxIconsInMessage).join(', ') +
                    (_missingIcons.length > maxIconsInMessage ? " (+ " + (_missingIcons.length - maxIconsInMessage) + " more)" : ''));
                _missingIconsTimer = undefined;
                _missingIcons = [];
            }, warningDelay);
        }
    }
}


/***/ }),

/***/ "../styling/lib/utilities/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _buildClassMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../styling/lib/utilities/buildClassMap.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return _buildClassMap__WEBPACK_IMPORTED_MODULE_0__["buildClassMap"]; });

/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/utilities/icons.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return _icons__WEBPACK_IMPORTED_MODULE_1__["getIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return _icons__WEBPACK_IMPORTED_MODULE_1__["registerIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return _icons__WEBPACK_IMPORTED_MODULE_1__["registerIconAlias"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return _icons__WEBPACK_IMPORTED_MODULE_1__["unregisterIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return _icons__WEBPACK_IMPORTED_MODULE_1__["setIconOptions"]; });

/* harmony import */ var _getIconClassName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/utilities/getIconClassName.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _getIconClassName__WEBPACK_IMPORTED_MODULE_2__["getIconClassName"]; });






/***/ }),

/***/ "../styling/lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// @uifabric/styling@7.7.2
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/styling', '7.7.2');


/***/ }),

/***/ "../utilities/lib/Async.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Async", function() { return Async; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

/**
 * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.
 * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.
 *
 * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a
 * new instance of the class and remember to call dispose() during your code's dispose handler.
 *
 * @public
 */
var Async = /** @class */ (function () {
    // tslint:disable-next-line:no-any
    function Async(parent, onError) {
        this._timeoutIds = null;
        this._immediateIds = null;
        this._intervalIds = null;
        this._animationFrameIds = null;
        this._isDisposed = false;
        this._parent = parent || null;
        this._onErrorHandler = onError;
        this._noop = function () {
            /* do nothing */
        };
    }
    /**
     * Dispose function, clears all async operations.
     */
    Async.prototype.dispose = function () {
        var id;
        this._isDisposed = true;
        this._parent = null;
        // Clear timeouts.
        if (this._timeoutIds) {
            for (id in this._timeoutIds) {
                if (this._timeoutIds.hasOwnProperty(id)) {
                    this.clearTimeout(parseInt(id, 10));
                }
            }
            this._timeoutIds = null;
        }
        // Clear immediates.
        if (this._immediateIds) {
            for (id in this._immediateIds) {
                if (this._immediateIds.hasOwnProperty(id)) {
                    this.clearImmediate(parseInt(id, 10));
                }
            }
            this._immediateIds = null;
        }
        // Clear intervals.
        if (this._intervalIds) {
            for (id in this._intervalIds) {
                if (this._intervalIds.hasOwnProperty(id)) {
                    this.clearInterval(parseInt(id, 10));
                }
            }
            this._intervalIds = null;
        }
        // Clear animation frames.
        if (this._animationFrameIds) {
            for (id in this._animationFrameIds) {
                if (this._animationFrameIds.hasOwnProperty(id)) {
                    this.cancelAnimationFrame(parseInt(id, 10));
                }
            }
            this._animationFrameIds = null;
        }
    };
    /**
     * SetTimeout override, which will auto cancel the timeout during dispose.
     * @param callback - Callback to execute.
     * @param duration - Duration in milliseconds.
     * @returns The setTimeout id.
     */
    Async.prototype.setTimeout = function (callback, duration) {
        var _this = this;
        var timeoutId = 0;
        if (!this._isDisposed) {
            if (!this._timeoutIds) {
                this._timeoutIds = {};
            }
            /* tslint:disable:ban-native-functions */
            timeoutId = setTimeout(function () {
                // Time to execute the timeout, enqueue it as a foreground task to be executed.
                try {
                    // Now delete the record and call the callback.
                    if (_this._timeoutIds) {
                        delete _this._timeoutIds[timeoutId];
                    }
                    callback.apply(_this._parent);
                }
                catch (e) {
                    if (_this._onErrorHandler) {
                        _this._onErrorHandler(e);
                    }
                }
            }, duration);
            /* tslint:enable:ban-native-functions */
            this._timeoutIds[timeoutId] = true;
        }
        return timeoutId;
    };
    /**
     * Clears the timeout.
     * @param id - Id to cancel.
     */
    Async.prototype.clearTimeout = function (id) {
        if (this._timeoutIds && this._timeoutIds[id]) {
            /* tslint:disable:ban-native-functions */
            clearTimeout(id);
            delete this._timeoutIds[id];
            /* tslint:enable:ban-native-functions */
        }
    };
    /**
     * SetImmediate override, which will auto cancel the immediate during dispose.
     * @param callback - Callback to execute.
     * @param targetElement - Optional target element to use for identifying the correct window.
     * @returns The setTimeout id.
     */
    Async.prototype.setImmediate = function (callback, targetElement) {
        var _this = this;
        var immediateId = 0;
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(targetElement);
        if (!this._isDisposed) {
            if (!this._immediateIds) {
                this._immediateIds = {};
            }
            /* tslint:disable:ban-native-functions */
            var setImmediateCallback = function () {
                // Time to execute the timeout, enqueue it as a foreground task to be executed.
                try {
                    // Now delete the record and call the callback.
                    if (_this._immediateIds) {
                        delete _this._immediateIds[immediateId];
                    }
                    callback.apply(_this._parent);
                }
                catch (e) {
                    _this._logError(e);
                }
            };
            immediateId = win.setTimeout(setImmediateCallback, 0);
            /* tslint:enable:ban-native-functions */
            this._immediateIds[immediateId] = true;
        }
        return immediateId;
    };
    /**
     * Clears the immediate.
     * @param id - Id to cancel.
     * @param targetElement - Optional target element to use for identifying the correct window.
     */
    Async.prototype.clearImmediate = function (id, targetElement) {
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(targetElement);
        if (this._immediateIds && this._immediateIds[id]) {
            /* tslint:disable:ban-native-functions */
            win.clearTimeout(id);
            delete this._immediateIds[id];
            /* tslint:enable:ban-native-functions */
        }
    };
    /**
     * SetInterval override, which will auto cancel the timeout during dispose.
     * @param callback - Callback to execute.
     * @param duration - Duration in milliseconds.
     * @returns The setTimeout id.
     */
    Async.prototype.setInterval = function (callback, duration) {
        var _this = this;
        var intervalId = 0;
        if (!this._isDisposed) {
            if (!this._intervalIds) {
                this._intervalIds = {};
            }
            /* tslint:disable:ban-native-functions */
            intervalId = setInterval(function () {
                // Time to execute the interval callback, enqueue it as a foreground task to be executed.
                try {
                    callback.apply(_this._parent);
                }
                catch (e) {
                    _this._logError(e);
                }
            }, duration);
            /* tslint:enable:ban-native-functions */
            this._intervalIds[intervalId] = true;
        }
        return intervalId;
    };
    /**
     * Clears the interval.
     * @param id - Id to cancel.
     */
    Async.prototype.clearInterval = function (id) {
        if (this._intervalIds && this._intervalIds[id]) {
            /* tslint:disable:ban-native-functions */
            clearInterval(id);
            delete this._intervalIds[id];
            /* tslint:enable:ban-native-functions */
        }
    };
    /**
     * Creates a function that, when executed, will only call the func function at most once per
     * every wait milliseconds. Provide an options object to indicate that func should be invoked
     * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled
     * function will return the result of the last func call.
     *
     * Note: If leading and trailing options are true func will be called on the trailing edge of
     * the timeout only if the the throttled function is invoked more than once during the wait timeout.
     *
     * @param func - The function to throttle.
     * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.
     * @param options - The options object.
     * @returns The new throttled function.
     */
    Async.prototype.throttle = function (func, wait, options) {
        var _this = this;
        if (this._isDisposed) {
            return this._noop;
        }
        var waitMS = wait || 0;
        var leading = true;
        var trailing = true;
        var lastExecuteTime = 0;
        var lastResult;
        // tslint:disable-next-line:no-any
        var lastArgs;
        var timeoutId = null;
        if (options && typeof options.leading === 'boolean') {
            leading = options.leading;
        }
        if (options && typeof options.trailing === 'boolean') {
            trailing = options.trailing;
        }
        var callback = function (userCall) {
            var now = new Date().getTime();
            var delta = now - lastExecuteTime;
            var waitLength = leading ? waitMS - delta : waitMS;
            if (delta >= waitMS && (!userCall || leading)) {
                lastExecuteTime = now;
                if (timeoutId) {
                    _this.clearTimeout(timeoutId);
                    timeoutId = null;
                }
                lastResult = func.apply(_this._parent, lastArgs);
            }
            else if (timeoutId === null && trailing) {
                timeoutId = _this.setTimeout(callback, waitLength);
            }
            return lastResult;
        };
        // tslint:disable-next-line:no-any
        var resultFunction = function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            lastArgs = args;
            return callback(true);
        };
        return resultFunction;
    };
    /**
     * Creates a function that will delay the execution of func until after wait milliseconds have
     * elapsed since the last time it was invoked. Provide an options object to indicate that func
     * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls
     * to the debounced function will return the result of the last func call.
     *
     * Note: If leading and trailing options are true func will be called on the trailing edge of
     * the timeout only if the the debounced function is invoked more than once during the wait
     * timeout.
     *
     * @param func - The function to debounce.
     * @param wait - The number of milliseconds to delay.
     * @param options - The options object.
     * @returns The new debounced function.
     */
    Async.prototype.debounce = function (func, wait, options) {
        var _this = this;
        if (this._isDisposed) {
            var noOpFunction = (function () {
                /** Do nothing */
            });
            noOpFunction.cancel = function () {
                return;
            };
            /* tslint:disable:no-any */
            noOpFunction.flush = (function () { return null; });
            /* tslint:enable:no-any */
            noOpFunction.pending = function () { return false; };
            return noOpFunction;
        }
        var waitMS = wait || 0;
        var leading = false;
        var trailing = true;
        var maxWait = null;
        var lastCallTime = 0;
        var lastExecuteTime = new Date().getTime();
        var lastResult;
        // tslint:disable-next-line:no-any
        var lastArgs;
        var timeoutId = null;
        if (options && typeof options.leading === 'boolean') {
            leading = options.leading;
        }
        if (options && typeof options.trailing === 'boolean') {
            trailing = options.trailing;
        }
        if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {
            maxWait = options.maxWait;
        }
        var markExecuted = function (time) {
            if (timeoutId) {
                _this.clearTimeout(timeoutId);
                timeoutId = null;
            }
            lastExecuteTime = time;
        };
        var invokeFunction = function (time) {
            markExecuted(time);
            lastResult = func.apply(_this._parent, lastArgs);
        };
        var callback = function (userCall) {
            var now = new Date().getTime();
            var executeImmediately = false;
            if (userCall) {
                if (leading && now - lastCallTime >= waitMS) {
                    executeImmediately = true;
                }
                lastCallTime = now;
            }
            var delta = now - lastCallTime;
            var waitLength = waitMS - delta;
            var maxWaitDelta = now - lastExecuteTime;
            var maxWaitExpired = false;
            if (maxWait !== null) {
                // maxWait only matters when there is a pending callback
                if (maxWaitDelta >= maxWait && timeoutId) {
                    maxWaitExpired = true;
                }
                else {
                    waitLength = Math.min(waitLength, maxWait - maxWaitDelta);
                }
            }
            if (delta >= waitMS || maxWaitExpired || executeImmediately) {
                invokeFunction(now);
            }
            else if ((timeoutId === null || !userCall) && trailing) {
                timeoutId = _this.setTimeout(callback, waitLength);
            }
            return lastResult;
        };
        var pending = function () {
            return !!timeoutId;
        };
        var cancel = function () {
            if (pending()) {
                // Mark the debounced function as having executed
                markExecuted(new Date().getTime());
            }
        };
        var flush = function () {
            if (pending()) {
                invokeFunction(new Date().getTime());
            }
            return lastResult;
        };
        // tslint:disable-next-line:no-any
        var resultFunction = (function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            lastArgs = args;
            return callback(true);
        });
        resultFunction.cancel = cancel;
        resultFunction.flush = flush;
        resultFunction.pending = pending;
        return resultFunction;
    };
    Async.prototype.requestAnimationFrame = function (callback, targetElement) {
        var _this = this;
        var animationFrameId = 0;
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(targetElement);
        if (!this._isDisposed) {
            if (!this._animationFrameIds) {
                this._animationFrameIds = {};
            }
            /* tslint:disable:ban-native-functions */
            var animationFrameCallback = function () {
                try {
                    // Now delete the record and call the callback.
                    if (_this._animationFrameIds) {
                        delete _this._animationFrameIds[animationFrameId];
                    }
                    callback.apply(_this._parent);
                }
                catch (e) {
                    _this._logError(e);
                }
            };
            animationFrameId = win.requestAnimationFrame
                ? win.requestAnimationFrame(animationFrameCallback)
                : win.setTimeout(animationFrameCallback, 0);
            /* tslint:enable:ban-native-functions */
            this._animationFrameIds[animationFrameId] = true;
        }
        return animationFrameId;
    };
    Async.prototype.cancelAnimationFrame = function (id, targetElement) {
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(targetElement);
        if (this._animationFrameIds && this._animationFrameIds[id]) {
            /* tslint:disable:ban-native-functions */
            win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);
            /* tslint:enable:ban-native-functions */
            delete this._animationFrameIds[id];
        }
    };
    // tslint:disable-next-line:no-any
    Async.prototype._logError = function (e) {
        if (this._onErrorHandler) {
            this._onErrorHandler(e);
        }
    };
    return Async;
}());



/***/ }),

/***/ "../utilities/lib/AutoScroll.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoScroll", function() { return AutoScroll; });
/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/EventGroup.js");
/* harmony import */ var _scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/scroll.js");
/* harmony import */ var _dom_getRect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/dom/getRect.js");



var SCROLL_ITERATION_DELAY = 16;
var SCROLL_GUTTER_HEIGHT = 100;
var MAX_SCROLL_VELOCITY = 15;
/**
 * AutoScroll simply hooks up mouse events given a parent element, and scrolls the container
 * up/down depending on how close the mouse is to the top/bottom of the container.
 *
 * Once you don't want autoscroll any more, just dispose the helper and it will unhook events.
 *
 * @public
 * {@docCategory AutoScroll}
 */
var AutoScroll = /** @class */ (function () {
    function AutoScroll(element) {
        this._events = new _EventGroup__WEBPACK_IMPORTED_MODULE_0__["EventGroup"](this);
        this._scrollableParent = Object(_scroll__WEBPACK_IMPORTED_MODULE_1__["findScrollableParent"])(element);
        this._incrementScroll = this._incrementScroll.bind(this);
        this._scrollRect = Object(_dom_getRect__WEBPACK_IMPORTED_MODULE_2__["getRect"])(this._scrollableParent);
        // tslint:disable-next-line:no-any
        if (this._scrollableParent === window) {
            this._scrollableParent = document.body;
        }
        if (this._scrollableParent) {
            this._events.on(window, 'mousemove', this._onMouseMove, true);
            this._events.on(window, 'touchmove', this._onTouchMove, true);
        }
    }
    AutoScroll.prototype.dispose = function () {
        this._events.dispose();
        this._stopScroll();
    };
    AutoScroll.prototype._onMouseMove = function (ev) {
        this._computeScrollVelocity(ev.clientY);
    };
    AutoScroll.prototype._onTouchMove = function (ev) {
        if (ev.touches.length > 0) {
            this._computeScrollVelocity(ev.touches[0].clientY);
        }
    };
    AutoScroll.prototype._computeScrollVelocity = function (clientY) {
        if (!this._scrollRect) {
            return;
        }
        var scrollRectTop = this._scrollRect.top;
        var scrollClientBottom = scrollRectTop + this._scrollRect.height - SCROLL_GUTTER_HEIGHT;
        if (clientY < scrollRectTop + SCROLL_GUTTER_HEIGHT) {
            this._scrollVelocity = Math.max(-MAX_SCROLL_VELOCITY, -MAX_SCROLL_VELOCITY * ((SCROLL_GUTTER_HEIGHT - (clientY - scrollRectTop)) / SCROLL_GUTTER_HEIGHT));
        }
        else if (clientY > scrollClientBottom) {
            this._scrollVelocity = Math.min(MAX_SCROLL_VELOCITY, MAX_SCROLL_VELOCITY * ((clientY - scrollClientBottom) / SCROLL_GUTTER_HEIGHT));
        }
        else {
            this._scrollVelocity = 0;
        }
        if (this._scrollVelocity) {
            this._startScroll();
        }
        else {
            this._stopScroll();
        }
    };
    AutoScroll.prototype._startScroll = function () {
        if (!this._timeoutId) {
            this._incrementScroll();
        }
    };
    AutoScroll.prototype._incrementScroll = function () {
        if (this._scrollableParent) {
            this._scrollableParent.scrollTop += Math.round(this._scrollVelocity);
        }
        this._timeoutId = setTimeout(this._incrementScroll, SCROLL_ITERATION_DELAY);
    };
    AutoScroll.prototype._stopScroll = function () {
        if (this._timeoutId) {
            clearTimeout(this._timeoutId);
            delete this._timeoutId;
        }
    };
    return AutoScroll;
}());



/***/ }),

/***/ "../utilities/lib/BaseComponent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return BaseComponent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nullRender", function() { return nullRender; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/Async.js");
/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/EventGroup.js");
/* harmony import */ var _warn_warnConditionallyRequiredProps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/warn/warnConditionallyRequiredProps.js");
/* harmony import */ var _warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../utilities/lib/warn/warnMutuallyExclusive.js");
/* harmony import */ var _warn_warnDeprecations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../utilities/lib/warn/warnDeprecations.js");
/* harmony import */ var _initializeFocusRects__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../utilities/lib/initializeFocusRects.js");
/* harmony import */ var _initializeDir__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../utilities/lib/initializeDir.js");









/**
 * BaseComponent class, which provides basic helpers for all components.
 *
 * @public
 * {@docCategory BaseComponent}
 */
var BaseComponent = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseComponent, _super);
    // tslint:enable:variable-name
    /**
     * BaseComponent constructor
     * @param props - The props for the component.
     * @param context - The context for the component.
     */
    // tslint:disable-next-line:no-any
    function BaseComponent(props, context) {
        var _this = _super.call(this, props, context) || this;
        // Ensure basic assumptions about the environment.
        Object(_initializeFocusRects__WEBPACK_IMPORTED_MODULE_7__["initializeFocusRects"])();
        Object(_initializeDir__WEBPACK_IMPORTED_MODULE_8__["initializeDir"])();
        _makeAllSafe(_this, BaseComponent.prototype, [
            'componentDidMount',
            'shouldComponentUpdate',
            'getSnapshotBeforeUpdate',
            'render',
            'componentDidUpdate',
            'componentWillUnmount'
        ]);
        return _this;
    }
    /**
     * When the component receives props, make sure the componentRef is updated.
     */
    BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {
        this._updateComponentRef(prevProps, this.props);
    };
    /**
     * When the component has mounted, update the componentRef.
     */
    BaseComponent.prototype.componentDidMount = function () {
        this._setComponentRef(this.props.componentRef, this);
    };
    /**
     * If we have disposables, dispose them automatically on unmount.
     */
    BaseComponent.prototype.componentWillUnmount = function () {
        this._setComponentRef(this.props.componentRef, null);
        if (this.__disposables) {
            for (var i = 0, len = this._disposables.length; i < len; i++) {
                var disposable = this.__disposables[i];
                if (disposable.dispose) {
                    disposable.dispose();
                }
            }
            this.__disposables = null;
        }
    };
    Object.defineProperty(BaseComponent.prototype, "className", {
        /**
         * Gets the object's class name.
         */
        get: function () {
            if (!this.__className) {
                var funcNameRegex = /function (.{1,})\(/;
                var results = funcNameRegex.exec(this.constructor.toString());
                this.__className = results && results.length > 1 ? results[1] : '';
            }
            return this.__className;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponent.prototype, "_disposables", {
        /**
         * Allows subclasses to push things to this._disposables to be auto disposed.
         */
        get: function () {
            if (!this.__disposables) {
                this.__disposables = [];
            }
            return this.__disposables;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponent.prototype, "_async", {
        /**
         * Gets the async instance associated with the component, created on demand. The async instance gives
         * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks
         * will be cleared/ignored automatically after unmounting. The helpers within the async object also
         * preserve the this pointer so that you don't need to "bind" the callbacks.
         */
        get: function () {
            if (!this.__async) {
                this.__async = new _Async__WEBPACK_IMPORTED_MODULE_2__["Async"](this);
                this._disposables.push(this.__async);
            }
            return this.__async;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseComponent.prototype, "_events", {
        /**
         * Gets the event group instance assocaited with the component, created on demand. The event instance
         * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks
         * will be automatically disconnected after unmounting. The helpers within the events object also
         * preserve the this reference so that you don't need to "bind" the callbacks.
         */
        get: function () {
            if (!this.__events) {
                this.__events = new _EventGroup__WEBPACK_IMPORTED_MODULE_3__["EventGroup"](this);
                this._disposables.push(this.__events);
            }
            return this.__events;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Helper to return a memoized ref resolver function.
     * @param refName - Name of the member to assign the ref to.
     * @returns A function instance keyed from the given refname.
     * @deprecated Use `createRef` from React.createRef.
     */
    BaseComponent.prototype._resolveRef = function (refName) {
        var _this = this;
        if (!this.__resolves) {
            this.__resolves = {};
        }
        if (!this.__resolves[refName]) {
            // tslint:disable-next-line:no-any
            this.__resolves[refName] = function (ref) {
                // tslint:disable-next-line:no-any
                return (_this[refName] = ref);
            };
        }
        return this.__resolves[refName];
    };
    /**
     * Updates the componentRef (by calling it with "this" when necessary.)
     */
    BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {
        if (newProps === void 0) { newProps = {}; }
        // currentProps *should* always be defined, but verify that just in case a subclass is manually
        // calling a lifecycle method with no parameters (which has happened) or other odd usage.
        if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {
            this._setComponentRef(currentProps.componentRef, null);
            this._setComponentRef(newProps.componentRef, this);
        }
    };
    /**
     * Warns when a deprecated props are being used.
     *
     * @param deprecationMap - The map of deprecations, where key is the prop name and the value is
     * either null or a replacement prop name.
     */
    BaseComponent.prototype._warnDeprecations = function (deprecationMap) {
        Object(_warn_warnDeprecations__WEBPACK_IMPORTED_MODULE_6__["warnDeprecations"])(this.className, this.props, deprecationMap);
    };
    /**
     * Warns when props which are mutually exclusive with each other are both used.
     *
     * @param mutuallyExclusiveMap - The map of mutually exclusive props.
     */
    BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {
        Object(_warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_5__["warnMutuallyExclusive"])(this.className, this.props, mutuallyExclusiveMap);
    };
    /**
     * Warns when props are required if a condition is met.
     *
     * @param requiredProps - The name of the props that are required when the condition is met.
     * @param conditionalPropName - The name of the prop that the condition is based on.
     * @param condition - Whether the condition is met.
     */
    BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {
        Object(_warn_warnConditionallyRequiredProps__WEBPACK_IMPORTED_MODULE_4__["warnConditionallyRequiredProps"])(this.className, this.props, requiredProps, conditionalPropName, condition);
    };
    BaseComponent.prototype._setComponentRef = function (ref, value) {
        if (!this._skipComponentRefResolution && ref) {
            if (typeof ref === 'function') {
                ref(value);
            }
            if (typeof ref === 'object') {
                // tslint:disable:no-any
                ref.current = value;
            }
        }
    };
    return BaseComponent;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

/**
 * Helper to override a given method with a wrapper method that can try/catch the original, but also
 * ensures that the BaseComponent's methods are called before the subclass's. This ensures that
 * componentWillUnmount in the base is called and that things in the _disposables array are disposed.
 */
function _makeAllSafe(obj, prototype, methodNames) {
    for (var i = 0, len = methodNames.length; i < len; i++) {
        _makeSafe(obj, prototype, methodNames[i]);
    }
}
function _makeSafe(obj, prototype, methodName) {
    // tslint:disable:no-any
    var classMethod = obj[methodName];
    var prototypeMethod = prototype[methodName];
    // tslint:enable:no-any
    if (classMethod || prototypeMethod) {
        // tslint:disable-next-line:no-any
        obj[methodName] = function () {
            var retVal;
            if (prototypeMethod) {
                retVal = prototypeMethod.apply(this, arguments);
            }
            if (classMethod !== prototypeMethod) {
                retVal = classMethod.apply(this, arguments);
            }
            return retVal;
        };
    }
}
/**
 * Simple constant function for returning null, used to render empty templates in JSX.
 *
 * @public
 */
function nullRender() {
    return null;
}


/***/ }),

/***/ "../utilities/lib/DelayedRender.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DelayedRender", function() { return DelayedRender; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);


/**
 * Utility component for delaying the render of a child component after a given delay. This component
 * requires a single child component; don't pass in many components. Wrap multiple components in a DIV
 * if necessary.
 *
 * @public
 * {@docCategory DelayedRender}
 */
var DelayedRender = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelayedRender, _super);
    function DelayedRender(props) {
        var _this = _super.call(this, props) || this;
        _this.state = {
            isRendered: false
        };
        return _this;
    }
    DelayedRender.prototype.componentDidMount = function () {
        var _this = this;
        var delay = this.props.delay;
        this._timeoutId = setTimeout(function () {
            _this.setState({
                isRendered: true
            });
        }, delay);
    };
    DelayedRender.prototype.componentWillUnmount = function () {
        if (this._timeoutId) {
            clearTimeout(this._timeoutId);
        }
    };
    DelayedRender.prototype.render = function () {
        return this.state.isRendered ? react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(this.props.children) : null;
    };
    DelayedRender.defaultProps = {
        delay: 0
    };
    return DelayedRender;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "../utilities/lib/EventGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventGroup", function() { return EventGroup; });
/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/object.js");
/* tslint:disable:no-string-literal */

/** An instance of EventGroup allows anything with a handle to it to trigger events on it.
 *  If the target is an HTMLElement, the event will be attached to the element and can be
 *  triggered as usual (like clicking for onclick).
 *  The event can be triggered by calling EventGroup.raise() here. If the target is an
 *  HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets
 *  handled here in EventGroup, and the handler is called in the context of the parent
 *  (which is passed in in the constructor).
 *
 * @public
 * {@docCategory EventGroup}
 */
var EventGroup = /** @class */ (function () {
    /** parent: the context in which events attached to non-HTMLElements are called */
    // tslint:disable-next-line:no-any
    function EventGroup(parent) {
        this._id = EventGroup._uniqueId++;
        this._parent = parent;
        this._eventRecords = [];
    }
    /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.
     *  Events raised here by default have bubbling set to false and cancelable set to true.
     *  This applies also to built-in events being raised manually here on HTMLElements,
     *  which may lead to unexpected behavior if it differs from the defaults.
     *
     */
    EventGroup.raise = function (
    // tslint:disable-next-line:no-any
    target, eventName, 
    // tslint:disable-next-line:no-any
    eventArgs, bubbleEvent) {
        var retVal;
        if (EventGroup._isElement(target)) {
            if (typeof document !== 'undefined' && document.createEvent) {
                var ev = document.createEvent('HTMLEvents');
                ev.initEvent(eventName, bubbleEvent || false, true);
                Object(_object__WEBPACK_IMPORTED_MODULE_0__["assign"])(ev, eventArgs);
                retVal = target.dispatchEvent(ev);
                // tslint:disable-next-line:no-any
            }
            else if (typeof document !== 'undefined' && document['createEventObject']) {
                // IE8
                // tslint:disable-next-line:no-any
                var evObj = document['createEventObject'](eventArgs);
                // cannot set cancelBubble on evObj, fireEvent will overwrite it
                target.fireEvent('on' + eventName, evObj);
            }
        }
        else {
            while (target && retVal !== false) {
                var events = target.__events__;
                var eventRecords = events ? events[eventName] : null;
                if (eventRecords) {
                    for (var id in eventRecords) {
                        if (eventRecords.hasOwnProperty(id)) {
                            var eventRecordList = eventRecords[id];
                            for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {
                                var record = eventRecordList[listIndex];
                                if (record.objectCallback) {
                                    retVal = record.objectCallback.call(record.parent, eventArgs);
                                }
                            }
                        }
                    }
                }
                // If the target has a parent, bubble the event up.
                target = bubbleEvent ? target.parent : null;
            }
        }
        return retVal;
    };
    // tslint:disable-next-line:no-any
    EventGroup.isObserved = function (target, eventName) {
        var events = target && target.__events__;
        return !!events && !!events[eventName];
    };
    /** Check to see if the target has declared support of the given event. */
    // tslint:disable-next-line:no-any
    EventGroup.isDeclared = function (target, eventName) {
        var declaredEvents = target && target.__declaredEvents;
        return !!declaredEvents && !!declaredEvents[eventName];
    };
    // tslint:disable-next-line:no-any
    EventGroup.stopPropagation = function (event) {
        if (event.stopPropagation) {
            event.stopPropagation();
        }
        else {
            // IE8
            event.cancelBubble = true;
        }
    };
    EventGroup._isElement = function (target) {
        return !!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement));
    };
    EventGroup.prototype.dispose = function () {
        if (!this._isDisposed) {
            this._isDisposed = true;
            this.off();
            this._parent = null;
        }
    };
    /** On the target, attach a set of events, where the events object is a name to function mapping. */
    // tslint:disable-next-line:no-any
    EventGroup.prototype.onAll = function (target, events, useCapture) {
        for (var eventName in events) {
            if (events.hasOwnProperty(eventName)) {
                this.on(target, eventName, events[eventName], useCapture);
            }
        }
    };
    /** On the target, attach an event whose handler will be called in the context of the parent
     * of this instance of EventGroup.
     */
    // tslint:disable-next-line:no-any
    EventGroup.prototype.on = function (target, eventName, callback, options) {
        var _this = this;
        if (eventName.indexOf(',') > -1) {
            var events = eventName.split(/[ ,]+/);
            for (var i = 0; i < events.length; i++) {
                this.on(target, events[i], callback, options);
            }
        }
        else {
            var parent_1 = this._parent;
            var eventRecord = {
                target: target,
                eventName: eventName,
                parent: parent_1,
                callback: callback,
                options: options
            };
            // Initialize and wire up the record on the target, so that it can call the callback if the event fires.
            var events = (target.__events__ = target.__events__ || {});
            events[eventName] =
                events[eventName] ||
                    {
                        count: 0
                    };
            events[eventName][this._id] = events[eventName][this._id] || [];
            events[eventName][this._id].push(eventRecord);
            events[eventName].count++;
            if (EventGroup._isElement(target)) {
                // tslint:disable-next-line:no-any
                var processElementEvent = function () {
                    var args = [];
                    for (var _i = 0; _i < arguments.length; _i++) {
                        args[_i] = arguments[_i];
                    }
                    if (_this._isDisposed) {
                        return;
                    }
                    var result;
                    try {
                        result = callback.apply(parent_1, args);
                        if (result === false && args[0]) {
                            var e = args[0];
                            if (e.preventDefault) {
                                e.preventDefault();
                            }
                            if (e.stopPropagation) {
                                e.stopPropagation();
                            }
                            e.cancelBubble = true;
                        }
                    }
                    catch (e) {
                        /* ErrorHelper.log(e); */
                    }
                    return result;
                };
                eventRecord.elementCallback = processElementEvent;
                if (target.addEventListener) {
                    /* tslint:disable:ban-native-functions */
                    target.addEventListener(eventName, processElementEvent, options);
                    /* tslint:enable:ban-native-functions */
                }
                else if (target.attachEvent) {
                    // IE8
                    target.attachEvent('on' + eventName, processElementEvent);
                }
            }
            else {
                // tslint:disable-next-line:no-any
                var processObjectEvent = function () {
                    var args = [];
                    for (var _i = 0; _i < arguments.length; _i++) {
                        args[_i] = arguments[_i];
                    }
                    if (_this._isDisposed) {
                        return;
                    }
                    return callback.apply(parent_1, args);
                };
                eventRecord.objectCallback = processObjectEvent;
            }
            // Remember the record locally, so that it can be removed.
            this._eventRecords.push(eventRecord);
        }
    };
    // tslint:disable-next-line:no-any
    EventGroup.prototype.off = function (target, eventName, callback, options) {
        for (var i = 0; i < this._eventRecords.length; i++) {
            var eventRecord = this._eventRecords[i];
            if ((!target || target === eventRecord.target) &&
                (!eventName || eventName === eventRecord.eventName) &&
                (!callback || callback === eventRecord.callback) &&
                (typeof options !== 'boolean' || options === eventRecord.options)) {
                var events = eventRecord.target.__events__;
                var targetArrayLookup = events[eventRecord.eventName];
                var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;
                // We may have already target's entries, so check for null.
                if (targetArray) {
                    if (targetArray.length === 1 || !callback) {
                        targetArrayLookup.count -= targetArray.length;
                        delete events[eventRecord.eventName][this._id];
                    }
                    else {
                        targetArrayLookup.count--;
                        targetArray.splice(targetArray.indexOf(eventRecord), 1);
                    }
                    if (!targetArrayLookup.count) {
                        delete events[eventRecord.eventName];
                    }
                }
                if (eventRecord.elementCallback) {
                    if (eventRecord.target.removeEventListener) {
                        eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);
                    }
                    else if (eventRecord.target.detachEvent) {
                        // IE8
                        eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);
                    }
                }
                this._eventRecords.splice(i--, 1);
            }
        }
    };
    /** Trigger the given event in the context of this instance of EventGroup. */
    // tslint:disable-next-line:no-any
    EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {
        return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);
    };
    /** Declare an event as being supported by this instance of EventGroup. */
    EventGroup.prototype.declare = function (event) {
        var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});
        if (typeof event === 'string') {
            declaredEvents[event] = true;
        }
        else {
            for (var i = 0; i < event.length; i++) {
                declaredEvents[event[i]] = true;
            }
        }
    };
    // tslint:disable-next-line:no-inferrable-types
    EventGroup._uniqueId = 0;
    return EventGroup;
}());



/***/ }),

/***/ "../utilities/lib/FabricPerformance.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FabricPerformance", function() { return FabricPerformance; });
var now = function () { return (typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now()); };
var RESET_INTERVAL = 3 * 60 * 1000; // auto reset every 3 minutes
/**
 * Performance helper class for measuring things.
 *
 * @public
 * {@docCategory FabricPerformance}
 */
var FabricPerformance = /** @class */ (function () {
    function FabricPerformance() {
    }
    /**
     * Measures execution time of the given syncronous function. If the same logic is executed multiple times,
     * each individual measurement will be collected as well the overall numbers.
     * @param name - The name of this measurement
     * @param func - The logic to be measured for execution time
     */
    FabricPerformance.measure = function (name, func) {
        if (FabricPerformance._timeoutId) {
            FabricPerformance.setPeriodicReset();
        }
        var start = now();
        func();
        var end = now();
        var measurement = FabricPerformance.summary[name] || {
            totalDuration: 0,
            count: 0,
            all: []
        };
        var duration = end - start;
        measurement.totalDuration += duration;
        measurement.count++;
        measurement.all.push({
            duration: duration,
            timeStamp: end
        });
        FabricPerformance.summary[name] = measurement;
    };
    FabricPerformance.reset = function () {
        FabricPerformance.summary = {};
        clearTimeout(FabricPerformance._timeoutId);
        FabricPerformance._timeoutId = NaN;
    };
    FabricPerformance.setPeriodicReset = function () {
        FabricPerformance._timeoutId = setTimeout(function () { return FabricPerformance.reset(); }, RESET_INTERVAL);
    };
    FabricPerformance.summary = {};
    return FabricPerformance;
}());



/***/ }),

/***/ "../utilities/lib/GlobalSettings.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GlobalSettings", function() { return GlobalSettings; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

/**
 * Storing global state in local module variables has issues when more than one copy
 * if the module gets loaded on the page (due to a bundling error or simply by consuming
 * a prebundled script.)
 *
 * This file contains helpers to deal with the getting and setting local state, and allows
 * callers to get called back when it mutates.
 */
// tslint:disable:no-any
var GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';
var CALLBACK_STATE_PROP_NAME = '__callbacks__';
var _counter = 0;
/**
 * Global settings helper, which stores settings in the global (window) namespace.
 * If window is not provided, it will store settings in module scope. Provides a
 * way to observe changes as well when their values change.
 *
 * @public
 * {@docCategory GlobalSettings}
 */
var GlobalSettings = /** @class */ (function () {
    function GlobalSettings() {
    }
    GlobalSettings.getValue = function (key, defaultValue) {
        var globalSettings = _getGlobalSettings();
        if (globalSettings[key] === undefined) {
            globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;
        }
        return globalSettings[key];
    };
    GlobalSettings.setValue = function (key, value) {
        var globalSettings = _getGlobalSettings();
        var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];
        var oldValue = globalSettings[key];
        if (value !== oldValue) {
            globalSettings[key] = value;
            var changeDescription = {
                oldValue: oldValue,
                value: value,
                key: key
            };
            for (var id in callbacks) {
                if (callbacks.hasOwnProperty(id)) {
                    callbacks[id](changeDescription);
                }
            }
        }
        return value;
    };
    GlobalSettings.addChangeListener = function (cb) {
        // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.
        // (It's faster to delete a key than it is to look up the index of an object and splice an array.)
        var id = cb.__id__;
        var callbacks = _getCallbacks();
        if (!id) {
            id = cb.__id__ = String(_counter++);
        }
        callbacks[id] = cb;
    };
    GlobalSettings.removeChangeListener = function (cb) {
        var callbacks = _getCallbacks();
        delete callbacks[cb.__id__];
    };
    return GlobalSettings;
}());

function _getGlobalSettings() {
    var _a;
    var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])();
    var globalObj = win || {};
    if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {
        globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},
            _a[CALLBACK_STATE_PROP_NAME] = {},
            _a);
    }
    return globalObj[GLOBAL_SETTINGS_PROP_NAME];
}
function _getCallbacks() {
    var globalSettings = _getGlobalSettings();
    return globalSettings[CALLBACK_STATE_PROP_NAME];
}


/***/ }),

/***/ "../utilities/lib/KeyCodes.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyCodes", function() { return KeyCodes; });
/**
 * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum
 *
 * @public
 * {@docCategory KeyCodes}
 */
var KeyCodes = {
    backspace: 8,
    tab: 9,
    enter: 13,
    shift: 16,
    ctrl: 17,
    alt: 18,
    pauseBreak: 19,
    capslock: 20,
    escape: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    insert: 45,
    del: 46,
    zero: 48,
    one: 49,
    two: 50,
    three: 51,
    four: 52,
    five: 53,
    six: 54,
    seven: 55,
    eight: 56,
    nine: 57,
    a: 65,
    b: 66,
    c: 67,
    d: 68,
    e: 69,
    f: 70,
    g: 71,
    h: 72,
    i: 73,
    j: 74,
    k: 75,
    l: 76,
    m: 77,
    n: 78,
    o: 79,
    p: 80,
    q: 81,
    r: 82,
    s: 83,
    t: 84,
    u: 85,
    v: 86,
    w: 87,
    x: 88,
    y: 89,
    z: 90,
    leftWindow: 91,
    rightWindow: 92,
    select: 93,
    zero_numpad: 96,
    one_numpad: 97,
    two_numpad: 98,
    three_numpad: 99,
    four_numpad: 100,
    five_numpad: 101,
    six_numpad: 102,
    seven_numpad: 103,
    eight_numpad: 104,
    nine_numpad: 105,
    multiply: 106,
    add: 107,
    subtract: 109,
    decimalPoint: 110,
    divide: 111,
    f1: 112,
    f2: 113,
    f3: 114,
    f4: 115,
    f5: 116,
    f6: 117,
    f7: 118,
    f8: 119,
    f9: 120,
    f10: 121,
    f11: 122,
    f12: 123,
    numlock: 144,
    scrollLock: 145,
    semicolon: 186,
    equalSign: 187,
    comma: 188,
    dash: 189,
    period: 190,
    forwardSlash: 191,
    graveAccent: 192,
    openBracket: 219,
    backSlash: 220,
    closeBracket: 221,
    singleQuote: 222
};


/***/ }),

/***/ "../utilities/lib/Rectangle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return Rectangle; });
/**
 * Rectangle helper class.
 *
 * @public
 * {@docCategory Rectangle}
 */
var Rectangle = /** @class */ (function () {
    function Rectangle(left, right, top, bottom) {
        if (left === void 0) { left = 0; }
        if (right === void 0) { right = 0; }
        if (top === void 0) { top = 0; }
        if (bottom === void 0) { bottom = 0; }
        this.top = top;
        this.bottom = bottom;
        this.left = left;
        this.right = right;
    }
    Object.defineProperty(Rectangle.prototype, "width", {
        /**
         * Calculated automatically by subtracting the right from left
         */
        get: function () {
            return this.right - this.left;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Rectangle.prototype, "height", {
        /**
         * Calculated automatically by subtracting the bottom from top.
         */
        get: function () {
            return this.bottom - this.top;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Tests if another rect is approximately equal to this rect (within 4 decimal places.)
     */
    Rectangle.prototype.equals = function (rect) {
        // I'm fixing it to 4 decimal places because it allows enough precision and will handle cases when something should be rounded,
        // like .999999 should round to 1.
        return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&
            parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&
            parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&
            parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));
    };
    return Rectangle;
}());



/***/ }),

/***/ "../utilities/lib/appendFunction.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendFunction", function() { return appendFunction; });
// tslint:disable:no-any
/**
 * Returns a single function which will call each of the given functions in the context of the
 * parent.
 */
function appendFunction(parent) {
    var functions = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        functions[_i - 1] = arguments[_i];
    }
    if (functions.length < 2) {
        return functions[0];
    }
    return function () {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        functions.forEach(function (f) { return f && f.apply(parent, args); });
    };
}


/***/ }),

/***/ "../utilities/lib/aria.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAriaAttributeValues", function() { return mergeAriaAttributeValues; });
/**
 * ARIA helper to concatenate attributes, returning undefined if all attributes
 * are undefined. (Empty strings are not a valid ARIA attribute value.)
 *
 * @param ariaAttributes - ARIA attributes to merge
 */
function mergeAriaAttributeValues() {
    var ariaAttributes = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        ariaAttributes[_i] = arguments[_i];
    }
    var mergedAttribute = ariaAttributes
        .filter(function (arg) { return arg; })
        .join(' ')
        .trim();
    return mergedAttribute === '' ? undefined : mergedAttribute;
}


/***/ }),

/***/ "../utilities/lib/array.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createArray", function() { return createArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return toMatrix; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeIndex", function() { return removeIndex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "replaceElement", function() { return replaceElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addElementAtIndex", function() { return addElementAtIndex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return flatten; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arraysEqual", function() { return arraysEqual; });
/**
 * Helper to find the index of an item within an array, using a callback to
 * determine the match.
 *
 * @public
 * @param array - Array to search.
 * @param cb - Callback which returns true on matches.
 */
function findIndex(array, cb) {
    var index = -1;
    for (var i = 0; array && i < array.length; i++) {
        if (cb(array[i], i)) {
            index = i;
            break;
        }
    }
    return index;
}
/**
 * Helper to find the first item within an array that satisfies the callback.
 * @param array - Array to search
 * @param cb - Callback which returns true on matches
 */
function find(array, cb) {
    var index = findIndex(array, cb);
    if (index < 0) {
        return undefined;
    }
    return array[index];
}
/**
 * Creates an array of a given size and helper method to populate.
 *
 * @public
 * @param size - Size of array.
 * @param getItem - Callback to populate given cell index.
 */
function createArray(size, getItem) {
    var array = [];
    for (var i = 0; i < size; i++) {
        array.push(getItem(i));
    }
    return array;
}
/**
 * Convert the given array to a matrix with columnCount number
 * of columns.
 *
 * @public
 * @param items - The array to convert
 * @param columnCount - The number of columns for the resulting matrix
 * @returns A matrix of items
 */
function toMatrix(items, columnCount) {
    return items.reduce(function (rows, currentValue, index) {
        if (index % columnCount === 0) {
            rows.push([currentValue]);
        }
        else {
            rows[rows.length - 1].push(currentValue);
        }
        return rows;
    }, []);
}
/**
 * Given an array, it returns a new array that does not contain the item at the given index.
 * @param array - The array to operate on
 * @param index - The index of the element to remove
 */
function removeIndex(array, index) {
    return array.filter(function (_, i) { return index !== i; });
}
/**
 * Given an array, this function returns a new array where the element at a given index has been replaced.
 * @param array - The array to operate on
 * @param newElement - The element that will be placed in the new array
 * @param index - The index of the element that should be replaced
 */
function replaceElement(array, newElement, index) {
    var copy = array.slice();
    copy[index] = newElement;
    return copy;
}
/**
 * Given an array, this function returns a new array where an element has been inserted at the given index.
 * @param array - The array to operate on
 * @param index - The index where an element should be inserted
 * @param itemToAdd - The element to insert
 */
function addElementAtIndex(array, index, itemToAdd) {
    var copy = array.slice();
    copy.splice(index, 0, itemToAdd);
    return copy;
}
/**
 * Given an array where each element is of type T or T[], flatten it into an array of T
 * @param array - The array where each element can optionally also be an array
 */
function flatten(array) {
    var result = [];
    array.forEach(function (item) { return (result = result.concat(item)); });
    return result;
}
/**
 * Returns a boolean indicating if the two given arrays are equal in length and values.
 *
 * @param array1 - First array to compare
 * @param array2 - Second array to compare
 * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.
 */
function arraysEqual(array1, array2) {
    if (array1.length !== array2.length) {
        return false;
    }
    for (var i = 0; i < array1.length; i++) {
        if (array1[i] !== array2[i]) {
            return false;
        }
    }
    return true;
}


/***/ }),

/***/ "../utilities/lib/asAsync.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asAsync", function() { return asAsync; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/**
 * asAsync - a HOC for async loading components.
 *
 * Usage:
 *
 * const AsyncDialog = asAsync({
 *   load: () => import('Dialog').then(result => result.default),
 * });
 *
 * React.render(domElement, <AsyncDialog asyncPlaceholder={ () => <Spinner/> } { ...dialogProps } />);
 *
 * Note the `asyncPlaceholder` prop will be respected when rendering the async component and it hasn't
 * been loaded yet.
 */


/**
 * If possible, use a WeakMap to maintain a cache of loaded components.
 * This can be used to synchronously render components that have already been loaded,
 * rather than having to wait for at least one async tick.
 */
var _syncModuleCache = typeof WeakMap !== 'undefined'
    ? // tslint:disable-next-line:no-any
        new WeakMap()
    : undefined;
/**
 * Produces a component which internally loads the target component before first mount.
 * The component passes all props through to the loaded component.
 *
 * This overload accepts a module with a default export for the component.
 */
function asAsync(options) {
    var Async = /** @class */ (function (_super) {
        tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Async, _super);
        function Async() {
            var _this = _super !== null && _super.apply(this, arguments) || this;
            _this.state = {
                Component: _syncModuleCache ? _syncModuleCache.get(options.load) : undefined
            };
            return _this;
        }
        Async.prototype.render = function () {
            // Typescript issue: the rest can't be pulled without the any cast, as TypeScript fails with rest on generics.
            // tslint:disable-next-line:no-any
            var _a = this.props, forwardedRef = _a.forwardedRef, Placeholder = _a.asyncPlaceholder, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["forwardedRef", "asyncPlaceholder"]);
            var Component = this.state.Component;
            return Component ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Component, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rest, { ref: forwardedRef })) : Placeholder ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Placeholder, null) : null;
        };
        Async.prototype.componentDidMount = function () {
            var _this = this;
            var Component = this.state.Component;
            if (!Component) {
                options
                    .load()
                    .then(function (LoadedComponent) {
                    if (LoadedComponent) {
                        // Cache component for future reference.
                        _syncModuleCache && _syncModuleCache.set(options.load, LoadedComponent);
                        // Set state.
                        _this.setState({
                            Component: LoadedComponent
                        }, options.onLoad);
                    }
                })
                    .catch(options.onError);
            }
        };
        return Async;
    }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
    return react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"](function (props, ref) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Async, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { forwardedRef: ref }))); });
}


/***/ }),

/***/ "../utilities/lib/assertNever.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assertNever", function() { return assertNever; });
/**
 * AssertNever is a utility function that can be used for exhaustiveness checks in switch statements.
 *
 * @public
 */
function assertNever(x) {
    throw new Error('Unexpected object: ' + x);
}


/***/ }),

/***/ "../utilities/lib/classNamesFunction.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classNamesFunction", function() { return classNamesFunction; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _rtl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/rtl.js");


var MAX_CACHE_COUNT = 50;
var _memoizedClassNames = 0;
var stylesheet = _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
if (stylesheet && stylesheet.onReset) {
    stylesheet.onReset(function () { return _memoizedClassNames++; });
}
// Note that because of the caching nature within the classNames memoization,
// I've disabled this rule to simply be able to work with any types.
// tslint:disable:no-any
// This represents a prop we attach to each Map to indicate the cached return value
// associated with the graph node.
var RetVal = '__retval__';
/**
 * Creates a getClassNames function which calls getStyles given the props, and injects them
 * into mergeStyleSets.
 *
 * Note that the props you pass in on every render should be in the same order and
 * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating
 * these will cause extra recalcs to occur.
 */
function classNamesFunction(options) {
    // We build a trie where each node is a Map. The map entry key represents an argument
    // value, and the entry value is another node (Map). Each node has a `__retval__`
    // property which is used to hold the cached response.
    if (options === void 0) { options = {}; }
    // To derive the response, we can simply ensure the arguments are added or already
    // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise
    // we call the `getStyles` api to evaluate, cache on the property, and return that.
    var map = new Map();
    var resultCount = 0;
    var currentMemoizedClassNames = _memoizedClassNames;
    var getClassNames = function (styleFunctionOrObject, styleProps) {
        if (styleProps === void 0) { styleProps = {}; }
        var current = map;
        var theme = styleProps.theme;
        var rtl = (theme && theme.rtl) || Object(_rtl__WEBPACK_IMPORTED_MODULE_1__["getRTL"])();
        var disableCaching = options.disableCaching;
        // On reset of our stylesheet, reset memoized cache.
        if (currentMemoizedClassNames !== _memoizedClassNames) {
            currentMemoizedClassNames = _memoizedClassNames;
            map = new Map();
            resultCount = 0;
        }
        if (!options.disableCaching) {
            current = _traverseMap(map, styleFunctionOrObject);
            current = _traverseMap(current, styleProps);
        }
        if (disableCaching || !current[RetVal]) {
            if (styleFunctionOrObject === undefined) {
                current[RetVal] = {};
            }
            else {
                current[RetVal] = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["mergeCssSets"])([
                    (typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject)
                ], { rtl: !!rtl });
            }
            if (!disableCaching) {
                resultCount++;
            }
        }
        if (resultCount > MAX_CACHE_COUNT) {
            map.clear();
            resultCount = 0;
            // Mutate the options passed in, that's all we can do.
            options.disableCaching = true;
            // Note: this code is great for debugging problems with styles being recaculated, but commenting it out
            // to avoid confusing consumers.
            // if (process.env.NODE_ENV !== 'production') {
            //  console.log('Styles are being recalculated far too frequently. Something is mutating the class over and over.');
            //  // tslint:disable-next-line:no-console
            //  console.trace();
            // }
        }
        // Note: the RetVal is an attached property on the Map; not a key in the Map. We use this attached property to
        // cache the return value for this branch of the graph.
        return current[RetVal];
    };
    return getClassNames;
}
function _traverseEdge(current, value) {
    value = _normalizeValue(value);
    if (!current.has(value)) {
        current.set(value, new Map());
    }
    return current.get(value);
}
function _traverseMap(current, inputs) {
    // The styled helper will generate the styles function and will attach the cached
    // inputs (consisting of the default styles, customzied styles, and user provided styles.)
    // These should be used as cache keys for deriving the memoized value.
    if (typeof inputs === 'function' && inputs.__cachedInputs__) {
        for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {
            var input = _a[_i];
            current = _traverseEdge(current, input);
        }
    }
    else if (typeof inputs === 'object') {
        for (var propName in inputs) {
            if (inputs.hasOwnProperty(propName)) {
                current = _traverseEdge(current, inputs[propName]);
            }
        }
    }
    return current;
}
function _normalizeValue(value) {
    switch (value) {
        case undefined:
            return '__undefined__';
        case null:
            return '__null__';
        default:
            return value;
    }
}


/***/ }),

/***/ "../utilities/lib/controlled.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isControlled", function() { return isControlled; });
/**
 * Determines whether a component is controlled.
 * @param props - Component props
 * @param valueProp - Prop containing the controlled value
 * @returns true if controlled, false if uncontrolled
 */
function isControlled(props, valueProp) {
    // React's built-in <input> considers a prop to be provided if its value is non-null/undefined.
    // Mirror that behavior here (rather than checking for just undefined).
    return props[valueProp] !== undefined && props[valueProp] !== null;
}


/***/ }),

/***/ "../utilities/lib/css.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return css; });
/**
 * Concatination helper, which can merge class names together. Skips over falsey values.
 *
 * @public
 */
function css() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    var classes = [];
    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
        var arg = args_1[_a];
        if (arg) {
            if (typeof arg === 'string') {
                classes.push(arg);
            }
            else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {
                classes.push(arg.toString());
            }
            else {
                // tslint:disable-next-line:no-any
                for (var key in arg) {
                    // tslint:disable-next-line:no-any
                    if (arg[key]) {
                        classes.push(key);
                    }
                }
            }
        }
    }
    return classes.join(' ');
}


/***/ }),

/***/ "../utilities/lib/customizations/Customizations.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Customizations", function() { return Customizations; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _GlobalSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/GlobalSettings.js");


var CustomizationsGlobalKey = 'customizations';
var NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };
var _allSettings = _GlobalSettings__WEBPACK_IMPORTED_MODULE_1__["GlobalSettings"].getValue(CustomizationsGlobalKey, {
    settings: {},
    scopedSettings: {},
    inCustomizerContext: false
});
var _events = [];
var Customizations = /** @class */ (function () {
    function Customizations() {
    }
    Customizations.reset = function () {
        _allSettings.settings = {};
        _allSettings.scopedSettings = {};
    };
    /** Apply global Customization settings.
     * @example Customizations.applySettings(\{ theme: \{...\} \});
     */
    Customizations.applySettings = function (settings) {
        _allSettings.settings = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _allSettings.settings, settings);
        Customizations._raiseChange();
    };
    /** Apply Customizations to a particular named scope, like a component.
     * @example Customizations.applyScopedSettings('Nav', \{ styles: () =\> \{\} \});
     */
    Customizations.applyScopedSettings = function (scopeName, settings) {
        _allSettings.scopedSettings[scopeName] = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _allSettings.scopedSettings[scopeName], settings);
        Customizations._raiseChange();
    };
    Customizations.getSettings = function (properties, scopeName, localSettings
    // tslint:disable-next-line:no-any
    ) {
        if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }
        var settings = {};
        var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};
        var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};
        for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {
            var property = properties_1[_i];
            settings[property] =
                localScopedSettings[property] ||
                    localSettings.settings[property] ||
                    globalScopedSettings[property] ||
                    _allSettings.settings[property];
        }
        return settings;
    };
    /** Used to run some code that sets Customizations without triggering an update until the end.
     * Useful for applying Customizations that don't affect anything currently rendered, or for
     * applying many customizations at once.
     * @param suppressUpdate - Do not raise the change event at the end, preventing all updates
     */
    Customizations.applyBatchedUpdates = function (code, suppressUpdate) {
        Customizations._suppressUpdates = true;
        try {
            code();
        }
        catch (_a) {
            /* do nothing */
        }
        Customizations._suppressUpdates = false;
        if (!suppressUpdate) {
            Customizations._raiseChange();
        }
    };
    Customizations.observe = function (onChange) {
        _events.push(onChange);
    };
    Customizations.unobserve = function (onChange) {
        _events = _events.filter(function (cb) { return cb !== onChange; });
    };
    Customizations._raiseChange = function () {
        if (!Customizations._suppressUpdates) {
            _events.forEach(function (cb) { return cb(); });
        }
    };
    return Customizations;
}());



/***/ }),

/***/ "../utilities/lib/customizations/Customizer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Customizer", function() { return Customizer; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Customizations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/customizations/Customizations.js");
/* harmony import */ var _CustomizerContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/customizations/CustomizerContext.js");
/* harmony import */ var _mergeCustomizations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/customizations/mergeCustomizations.js");





/**
 * The Customizer component allows for default props to be mixed into components which
 * are decorated with the customizable() decorator, or use the styled HOC. This enables
 * injection scenarios like:
 *
 * 1. render svg icons instead of the icon font within all buttons
 * 2. inject a custom theme object into a component
 *
 * Props are provided via the settings prop which should be one of the following:
 * - A json map which contains 1 or more name/value pairs representing injectable props.
 * - A function that receives the current settings and returns the new ones that apply to the scope
 *
 * @public
 */
var Customizer = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Customizer, _super);
    function Customizer() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onCustomizationChange = function () { return _this.forceUpdate(); };
        return _this;
    }
    Customizer.prototype.componentDidMount = function () {
        _Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].observe(this._onCustomizationChange);
    };
    Customizer.prototype.componentWillUnmount = function () {
        _Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].unobserve(this._onCustomizationChange);
    };
    Customizer.prototype.render = function () {
        var _this = this;
        var contextTransform = this.props.contextTransform;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CustomizerContext__WEBPACK_IMPORTED_MODULE_3__["CustomizerContext"].Consumer, null, function (parentContext) {
            var newContext = Object(_mergeCustomizations__WEBPACK_IMPORTED_MODULE_4__["mergeCustomizations"])(_this.props, parentContext);
            if (contextTransform) {
                newContext = contextTransform(newContext);
            }
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CustomizerContext__WEBPACK_IMPORTED_MODULE_3__["CustomizerContext"].Provider, { value: newContext }, _this.props.children);
        }));
    };
    return Customizer;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "../utilities/lib/customizations/CustomizerContext.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomizerContext", function() { return CustomizerContext; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

var CustomizerContext = react__WEBPACK_IMPORTED_MODULE_0__["createContext"]({
    customizations: {
        inCustomizerContext: false,
        settings: {},
        scopedSettings: {}
    }
});


/***/ }),

/***/ "../utilities/lib/customizations/customizable.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "customizable", function() { return customizable; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Customizations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/customizations/Customizations.js");
/* harmony import */ var _hoistStatics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/hoistStatics.js");
/* harmony import */ var _CustomizerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/customizations/CustomizerContext.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../merge-styles/lib/index.js");






function customizable(scope, fields, concatStyles
// tslint:disable-next-line:no-any
) {
    // tslint:disable-next-line:no-shadowed-variable
    return function customizableFactory(
    // tslint:disable-next-line:no-any
    ComposedComponent
    // tslint:disable-next-line:no-any
    ) {
        var _a;
        var resultClass = (_a = /** @class */ (function (_super) {
                tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ComponentWithInjectedProps, _super);
                // tslint:disable-next-line:no-any
                function ComponentWithInjectedProps(props) {
                    var _this = _super.call(this, props) || this;
                    _this._onSettingChanged = _this._onSettingChanged.bind(_this);
                    return _this;
                }
                ComponentWithInjectedProps.prototype.componentDidMount = function () {
                    _Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].observe(this._onSettingChanged);
                };
                ComponentWithInjectedProps.prototype.componentWillUnmount = function () {
                    _Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].unobserve(this._onSettingChanged);
                };
                ComponentWithInjectedProps.prototype.render = function () {
                    var _this = this;
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CustomizerContext__WEBPACK_IMPORTED_MODULE_4__["CustomizerContext"].Consumer, null, function (context) {
                        var defaultProps = _Customizations__WEBPACK_IMPORTED_MODULE_2__["Customizations"].getSettings(fields, scope, context.customizations);
                        // tslint:disable-next-line:no-any
                        var componentProps = _this.props;
                        // If defaultProps.styles is a function, evaluate it before calling concatStyleSets
                        if (defaultProps.styles && typeof defaultProps.styles === 'function') {
                            defaultProps.styles = defaultProps.styles(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultProps, componentProps));
                        }
                        // If concatStyles is true and custom styles have been defined compute those styles
                        if (concatStyles && (defaultProps.styles || componentProps.styles)) {
                            var mergedStyles = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_5__["concatStyleSets"])(defaultProps.styles, componentProps.styles);
                            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ComposedComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultProps, componentProps, { styles: mergedStyles }));
                        }
                        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ComposedComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultProps, componentProps));
                    }));
                };
                ComponentWithInjectedProps.prototype._onSettingChanged = function () {
                    this.forceUpdate();
                };
                return ComponentWithInjectedProps;
            }(react__WEBPACK_IMPORTED_MODULE_1__["Component"])),
            _a.displayName = 'Customized' + scope,
            _a);
        return Object(_hoistStatics__WEBPACK_IMPORTED_MODULE_3__["hoistStatics"])(ComposedComponent, resultClass);
    };
}


/***/ }),

/***/ "../utilities/lib/customizations/mergeCustomizations.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeCustomizations", function() { return mergeCustomizations; });
/* harmony import */ var _mergeSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/customizations/mergeSettings.js");

/**
 * Merge props and customizations giving priority to props over context.
 * NOTE: This function will always perform multiple merge operations. Use with caution.
 * @param props - New settings to merge in.
 * @param parentContext - Context containing current settings.
 * @returns Merged customizations.
 */
function mergeCustomizations(props, parentContext) {
    var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;
    return {
        customizations: {
            settings: Object(_mergeSettings__WEBPACK_IMPORTED_MODULE_0__["mergeSettings"])(customizations.settings, props.settings),
            scopedSettings: Object(_mergeSettings__WEBPACK_IMPORTED_MODULE_0__["mergeScopedSettings"])(customizations.scopedSettings, props.scopedSettings),
            inCustomizerContext: true
        }
    };
}


/***/ }),

/***/ "../utilities/lib/customizations/mergeSettings.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeSettings", function() { return mergeSettings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeScopedSettings", function() { return mergeScopedSettings; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");

/**
 * Merge new and old settings, giving priority to new settings.
 * New settings is optional in which case oldSettings is returned as-is.
 * @param oldSettings - Old settings to fall back to.
 * @param newSettings - New settings that will be merged over oldSettings.
 * @returns Merged settings.
 */
function mergeSettings(oldSettings, newSettings) {
    if (oldSettings === void 0) { oldSettings = {}; }
    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);
    return mergeSettingsWith(oldSettings);
}
function mergeScopedSettings(oldSettings, newSettings) {
    if (oldSettings === void 0) { oldSettings = {}; }
    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);
    return mergeSettingsWith(oldSettings);
}
function _isSettingsFunction(settings) {
    return typeof settings === 'function';
}
function _settingsMergeWith(newSettings) {
    return function (settings) { return (newSettings ? tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, settings, newSettings) : settings); };
}
function _scopedSettingsMergeWith(scopedSettingsFromProps) {
    if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }
    return function (oldScopedSettings) {
        var newScopedSettings = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, oldScopedSettings);
        for (var scopeName in scopedSettingsFromProps) {
            if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {
                newScopedSettings[scopeName] = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, oldScopedSettings[scopeName], scopedSettingsFromProps[scopeName]);
            }
        }
        return newScopedSettings;
    };
}


/***/ }),

/***/ "../utilities/lib/dom.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _dom_elementContains__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/elementContains.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return _dom_elementContains__WEBPACK_IMPORTED_MODULE_0__["elementContains"]; });

/* harmony import */ var _dom_elementContainsAttribute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/dom/elementContainsAttribute.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return _dom_elementContainsAttribute__WEBPACK_IMPORTED_MODULE_1__["elementContainsAttribute"]; });

/* harmony import */ var _dom_findElementRecursive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/dom/findElementRecursive.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return _dom_findElementRecursive__WEBPACK_IMPORTED_MODULE_2__["findElementRecursive"]; });

/* harmony import */ var _dom_getChildren__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/dom/getChildren.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return _dom_getChildren__WEBPACK_IMPORTED_MODULE_3__["getChildren"]; });

/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/dom/getDocument.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return _dom_getDocument__WEBPACK_IMPORTED_MODULE_4__["getDocument"]; });

/* harmony import */ var _dom_getParent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../utilities/lib/dom/getParent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return _dom_getParent__WEBPACK_IMPORTED_MODULE_5__["getParent"]; });

/* harmony import */ var _dom_getRect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../utilities/lib/dom/getRect.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return _dom_getRect__WEBPACK_IMPORTED_MODULE_6__["getRect"]; });

/* harmony import */ var _dom_getVirtualParent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../utilities/lib/dom/getVirtualParent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return _dom_getVirtualParent__WEBPACK_IMPORTED_MODULE_7__["getVirtualParent"]; });

/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../utilities/lib/dom/getWindow.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _dom_getWindow__WEBPACK_IMPORTED_MODULE_8__["getWindow"]; });

/* harmony import */ var _dom_isVirtualElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("../utilities/lib/dom/isVirtualElement.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return _dom_isVirtualElement__WEBPACK_IMPORTED_MODULE_9__["isVirtualElement"]; });

/* harmony import */ var _dom_on__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("../utilities/lib/dom/on.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "on", function() { return _dom_on__WEBPACK_IMPORTED_MODULE_10__["on"]; });

/* harmony import */ var _dom_portalContainsElement__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("../utilities/lib/dom/portalContainsElement.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return _dom_portalContainsElement__WEBPACK_IMPORTED_MODULE_11__["portalContainsElement"]; });

/* harmony import */ var _dom_raiseClick__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("../utilities/lib/dom/raiseClick.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return _dom_raiseClick__WEBPACK_IMPORTED_MODULE_12__["raiseClick"]; });

/* harmony import */ var _dom_setPortalAttribute__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("../utilities/lib/dom/setPortalAttribute.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return _dom_setPortalAttribute__WEBPACK_IMPORTED_MODULE_13__["DATA_PORTAL_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return _dom_setPortalAttribute__WEBPACK_IMPORTED_MODULE_13__["setPortalAttribute"]; });

/* harmony import */ var _dom_setVirtualParent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("../utilities/lib/dom/setVirtualParent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _dom_setVirtualParent__WEBPACK_IMPORTED_MODULE_14__["setVirtualParent"]; });


















/***/ }),

/***/ "../utilities/lib/dom/elementContains.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return elementContains; });
/* harmony import */ var _getParent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getParent.js");

/**
 * Determines whether or not a parent element contains a given child element.
 * If `allowVirtualParents` is true, this method may return `true` if the child
 * has the parent in its virtual element hierarchy.
 *
 * @public
 */
function elementContains(parent, child, allowVirtualParents) {
    if (allowVirtualParents === void 0) { allowVirtualParents = true; }
    var isContained = false;
    if (parent && child) {
        if (allowVirtualParents) {
            isContained = false;
            while (child) {
                var nextParent = Object(_getParent__WEBPACK_IMPORTED_MODULE_0__["getParent"])(child);
                if (nextParent === parent) {
                    isContained = true;
                    break;
                }
                child = nextParent;
            }
        }
        else if (parent.contains) {
            isContained = parent.contains(child);
        }
    }
    return isContained;
}


/***/ }),

/***/ "../utilities/lib/dom/elementContainsAttribute.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return elementContainsAttribute; });
/* harmony import */ var _findElementRecursive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/findElementRecursive.js");

/**
 * Determines if an element, or any of its ancestors, contain the given attribute
 * @param element - element to start searching at
 * @param attribute - the attribute to search for
 * @returns the value of the first instance found
 */
function elementContainsAttribute(element, attribute) {
    var elementMatch = Object(_findElementRecursive__WEBPACK_IMPORTED_MODULE_0__["findElementRecursive"])(element, function (testElement) { return testElement.hasAttribute(attribute); });
    return elementMatch && elementMatch.getAttribute(attribute);
}


/***/ }),

/***/ "../utilities/lib/dom/findElementRecursive.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return findElementRecursive; });
/* harmony import */ var _getParent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getParent.js");

/**
 * Finds the first parent element where the matchFunction returns true
 * @param element - element to start searching at
 * @param matchFunction - the function that determines if the element is a match
 * @returns the matched element or null no match was found
 */
function findElementRecursive(element, matchFunction) {
    if (!element || element === document.body) {
        return null;
    }
    return matchFunction(element) ? element : findElementRecursive(Object(_getParent__WEBPACK_IMPORTED_MODULE_0__["getParent"])(element), matchFunction);
}


/***/ }),

/***/ "../utilities/lib/dom/getChildren.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return getChildren; });
/* harmony import */ var _isVirtualElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/isVirtualElement.js");

/**
 * Gets the elements which are child elements of the given element.
 * If `allowVirtualChildren` is `true`, this method enumerates virtual child elements
 * after the original children.
 * @param parent - The element to get the children of.
 * @param allowVirtualChildren - true if the method should enumerate virtual child elements.
 */
function getChildren(parent, allowVirtualChildren) {
    if (allowVirtualChildren === void 0) { allowVirtualChildren = true; }
    var children = [];
    if (parent) {
        for (var i = 0; i < parent.children.length; i++) {
            children.push(parent.children.item(i));
        }
        if (allowVirtualChildren && Object(_isVirtualElement__WEBPACK_IMPORTED_MODULE_0__["isVirtualElement"])(parent)) {
            children.push.apply(children, parent._virtual.children);
        }
    }
    return children;
}


/***/ }),

/***/ "../utilities/lib/dom/getDocument.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return getDocument; });
/* harmony import */ var _setSSR__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/setSSR.js");

/**
 * Helper to get the document object. Note that in popup window cases, document
 * might be the wrong document, which is why we look at ownerDocument for the
 * truth. Also note that the SSR flag is used to test ssr scenarios even if
 * document is defined (from JSDOM for example.)
 *
 * @public
 */
function getDocument(rootElement) {
    if (_setSSR__WEBPACK_IMPORTED_MODULE_0__["_isSSR"] || typeof document === 'undefined') {
        return undefined;
    }
    else {
        var el = rootElement;
        return el && el.ownerDocument ? el.ownerDocument : document;
    }
}


/***/ }),

/***/ "../utilities/lib/dom/getParent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return getParent; });
/* harmony import */ var _getVirtualParent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getVirtualParent.js");

/**
 * Gets the element which is the parent of a given element.
 * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over
 * real DOM parent when present.
 *
 * @public
 */
function getParent(child, allowVirtualParents) {
    if (allowVirtualParents === void 0) { allowVirtualParents = true; }
    return child && ((allowVirtualParents && Object(_getVirtualParent__WEBPACK_IMPORTED_MODULE_0__["getVirtualParent"])(child)) || (child.parentNode && child.parentNode));
}


/***/ }),

/***/ "../utilities/lib/dom/getRect.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return getRect; });
/**
 * Helper to get bounding client rect. Passing in window will get the window size.
 *
 * @public
 */
function getRect(element) {
    var rect;
    if (element) {
        if (element === window) {
            rect = {
                left: 0,
                top: 0,
                width: window.innerWidth,
                height: window.innerHeight,
                right: window.innerWidth,
                bottom: window.innerHeight
            };
        }
        else if (element.getBoundingClientRect) {
            rect = element.getBoundingClientRect();
        }
    }
    return rect;
}


/***/ }),

/***/ "../utilities/lib/dom/getVirtualParent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return getVirtualParent; });
/* harmony import */ var _isVirtualElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/isVirtualElement.js");

/**
 * Gets the virtual parent given the child element, if it exists.
 *
 * @public
 */
function getVirtualParent(child) {
    var parent;
    if (child && Object(_isVirtualElement__WEBPACK_IMPORTED_MODULE_0__["isVirtualElement"])(child)) {
        parent = child._virtual.parent;
    }
    return parent;
}


/***/ }),

/***/ "../utilities/lib/dom/getWindow.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return getWindow; });
/* harmony import */ var _setSSR__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/setSSR.js");

var _window = undefined;
// Note: Accessing "window" in IE11 is somewhat expensive, and calling "typeof window"
// hits a memory leak, whereas aliasing it and calling "typeof _window" does not.
// Caching the window value at the file scope lets us minimize the impact.
try {
    _window = window;
}
catch (e) {
    /* no-op */
}
/**
 * Helper to get the window object. The helper will make sure to use a cached variable
 * of "window", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the
 * window object won't match the "global" window object, and for these scenarios, you should
 * pass in an element hosted within the popup.
 *
 * @public
 */
function getWindow(rootElement) {
    if (_setSSR__WEBPACK_IMPORTED_MODULE_0__["_isSSR"] || typeof _window === 'undefined') {
        return undefined;
    }
    else {
        var el = rootElement;
        return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;
    }
}


/***/ }),

/***/ "../utilities/lib/dom/isVirtualElement.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return isVirtualElement; });
/**
 * Determines whether or not an element has the virtual hierarchy extension.
 *
 * @public
 */
function isVirtualElement(element) {
    return element && !!element._virtual;
}


/***/ }),

/***/ "../utilities/lib/dom/on.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; });
function on(element, eventName, callback, options) {
    element.addEventListener(eventName, callback, options);
    return function () { return element.removeEventListener(eventName, callback, options); };
}


/***/ }),

/***/ "../utilities/lib/dom/portalContainsElement.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return portalContainsElement; });
/* harmony import */ var _findElementRecursive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/findElementRecursive.js");
/* harmony import */ var _setPortalAttribute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/dom/setPortalAttribute.js");


/**
 * Determine whether a target is within a portal from perspective of root or optional parent.
 * This function only works against portal components that use the setPortalAttribute function.
 * If both parent and child are within the same portal this function will return false.
 * @param target - Element to query portal containment status of.
 * @param parent - Optional parent perspective. Search for containing portal stops at parent (or root if parent is undefined or invalid.)
 */
function portalContainsElement(target, parent) {
    var elementMatch = Object(_findElementRecursive__WEBPACK_IMPORTED_MODULE_0__["findElementRecursive"])(target, function (testElement) { return parent === testElement || testElement.hasAttribute(_setPortalAttribute__WEBPACK_IMPORTED_MODULE_1__["DATA_PORTAL_ATTRIBUTE"]); });
    return elementMatch !== null && elementMatch.hasAttribute(_setPortalAttribute__WEBPACK_IMPORTED_MODULE_1__["DATA_PORTAL_ATTRIBUTE"]);
}


/***/ }),

/***/ "../utilities/lib/dom/raiseClick.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return raiseClick; });
/** Raises a click event. */
function raiseClick(target) {
    var event = createNewEvent('MouseEvents');
    event.initEvent('click', true, true);
    target.dispatchEvent(event);
}
function createNewEvent(eventName) {
    var event;
    if (typeof Event === 'function') {
        // Chrome, Opera, Firefox
        event = new Event(eventName);
    }
    else {
        // IE
        event = document.createEvent('Event');
        event.initEvent(eventName, true, true);
    }
    return event;
}


/***/ }),

/***/ "../utilities/lib/dom/setPortalAttribute.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return DATA_PORTAL_ATTRIBUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return setPortalAttribute; });
var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';
/**
 * Identify element as a portal by setting an attribute.
 * @param element - Element to mark as a portal.
 */
function setPortalAttribute(element) {
    element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');
}


/***/ }),

/***/ "../utilities/lib/dom/setSSR.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_isSSR", function() { return _isSSR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSSR", function() { return setSSR; });
var _isSSR = false;
/**
 * Helper to set ssr mode to simulate no window object returned from getWindow helper.
 *
 * @public
 */
function setSSR(isEnabled) {
    _isSSR = isEnabled;
}


/***/ }),

/***/ "../utilities/lib/dom/setVirtualParent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return setVirtualParent; });
/**
 * Sets the virtual parent of an element.
 * Pass `undefined` as the `parent` to clear the virtual parent.
 *
 * @public
 */
function setVirtualParent(child, parent) {
    var virtualChild = child;
    var virtualParent = parent;
    if (!virtualChild._virtual) {
        virtualChild._virtual = {
            children: []
        };
    }
    var oldParent = virtualChild._virtual.parent;
    if (oldParent && oldParent !== parent) {
        // Remove the child from its old parent.
        var index = oldParent._virtual.children.indexOf(virtualChild);
        if (index > -1) {
            oldParent._virtual.children.splice(index, 1);
        }
    }
    virtualChild._virtual.parent = virtualParent || undefined;
    if (virtualParent) {
        if (!virtualParent._virtual) {
            virtualParent._virtual = {
                children: []
            };
        }
        virtualParent._virtual.children.push(virtualChild);
    }
}


/***/ }),

/***/ "../utilities/lib/extendComponent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extendComponent", function() { return extendComponent; });
/* harmony import */ var _appendFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/appendFunction.js");

/**
 * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.
 */
function extendComponent(parent, methods) {
    for (var name_1 in methods) {
        if (methods.hasOwnProperty(name_1)) {
            // tslint:disable-next-line:no-any
            parent[name_1] = Object(_appendFunction__WEBPACK_IMPORTED_MODULE_0__["appendFunction"])(parent, parent[name_1], methods[name_1]);
        }
    }
}


/***/ }),

/***/ "../utilities/lib/focus.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstFocusable", function() { return getFirstFocusable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLastFocusable", function() { return getLastFocusable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstTabbable", function() { return getFirstTabbable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLastTabbable", function() { return getLastTabbable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusFirstChild", function() { return focusFirstChild; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPreviousElement", function() { return getPreviousElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNextElement", function() { return getNextElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return isElementVisible; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementTabbable", function() { return isElementTabbable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementFocusZone", function() { return isElementFocusZone; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementFocusSubZone", function() { return isElementFocusSubZone; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doesElementContainFocus", function() { return doesElementContainFocus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shouldWrapFocus", function() { return shouldWrapFocus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusAsync", function() { return focusAsync; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFocusableByIndexPath", function() { return getFocusableByIndexPath; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementIndexPath", function() { return getElementIndexPath; });
/* harmony import */ var _dom_elementContainsAttribute__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/elementContainsAttribute.js");
/* harmony import */ var _dom_elementContains__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/dom/elementContains.js");
/* harmony import */ var _dom_getParent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/dom/getParent.js");
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/dom/getWindow.js");
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/dom/getDocument.js");





var IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';
var IS_VISIBLE_ATTRIBUTE = 'data-is-visible';
var FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';
var FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';
/**
 * Gets the first focusable element.
 *
 * @public
 */
function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {
    return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);
}
/**
 * Gets the last focusable element.
 *
 * @public
 */
function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {
    return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);
}
/**
 * Gets the first tabbable element.
 * The difference between focusable and tabbable is that tabbable elements are focusable elements that also have tabIndex != -1.
 * @param rootElement - The parent element to search beneath.
 * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,
 * and iteration continues forward.  Typical use passes rootElement.firstChild.
 * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.
 * @param checkNode - Include currentElement in search when true. Defaults to true.
 * @public
 */
function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {
    if (checkNode === void 0) { checkNode = true; }
    return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);
}
/**
 * Gets the last tabbable element.
 * The difference between focusable and tabbable is that tabbable elements are focusable elements that also have tabIndex != -1.
 * @param rootElement - The parent element to search beneath.
 * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,
 * and iteration continues in reverse.  Typical use passes rootElement.lastChild.
 * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.
 * @param checkNode - Include currentElement in search when true. Defaults to true.
 * @public
 */
function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {
    if (checkNode === void 0) { checkNode = true; }
    return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);
}
/**
 * Attempts to focus the first focusable element that is a child or child's child of the rootElement.
 *
 * @public
 * @param rootElement - Element to start the search for a focusable child.
 * @returns True if focus was set, false if it was not.
 */
function focusFirstChild(rootElement) {
    var element = getNextElement(rootElement, rootElement, true, false, false, true);
    if (element) {
        focusAsync(element);
        return true;
    }
    return false;
}
/**
 * Traverse to find the previous element.
 * If tabbable is true, the element must have tabIndex != -1.
 *
 * @public
 */
function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {
    if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {
        return null;
    }
    var isCurrentElementVisible = isElementVisible(currentElement);
    // Check its children.
    if (traverseChildren &&
        isCurrentElementVisible &&
        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {
        var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);
        if (childMatch) {
            if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {
                return childMatch;
            }
            var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);
            if (childMatchSiblingMatch) {
                return childMatchSiblingMatch;
            }
            var childMatchParent = childMatch.parentElement;
            // At this point if we have not found any potential matches
            // start looking at the rest of the subtree under the currentParent.
            // NOTE: We do not want to recurse here because doing so could
            // cause elements to get skipped.
            while (childMatchParent && childMatchParent !== currentElement) {
                var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);
                if (childMatchParentMatch) {
                    return childMatchParentMatch;
                }
                childMatchParent = childMatchParent.parentElement;
            }
        }
    }
    // Check the current node, if it's not the first traversal.
    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {
        return currentElement;
    }
    // Check its previous sibling.
    var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);
    if (siblingMatch) {
        return siblingMatch;
    }
    // Check its parent.
    if (!suppressParentTraversal) {
        return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);
    }
    return null;
}
/**
 * Traverse to find the next focusable element.
 * If tabbable is true, the element must have tabIndex != -1.
 *
 * @public
 * @param checkNode - Include currentElement in search when true.
 */
function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable) {
    if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {
        return null;
    }
    var isCurrentElementVisible = isElementVisible(currentElement);
    // Check the current node, if it's not the first traversal.
    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {
        return currentElement;
    }
    // Check its children.
    if (!suppressChildTraversal &&
        isCurrentElementVisible &&
        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {
        var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);
        if (childMatch) {
            return childMatch;
        }
    }
    if (currentElement === rootElement) {
        return null;
    }
    // Check its sibling.
    var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);
    if (siblingMatch) {
        return siblingMatch;
    }
    if (!suppressParentTraversal) {
        return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable);
    }
    return null;
}
/**
 * Determines if an element is visible.
 *
 * @public
 */
function isElementVisible(element) {
    // If the element is not valid, return false.
    if (!element || !element.getAttribute) {
        return false;
    }
    var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);
    // If the element is explicitly marked with the visibility attribute, return that value as boolean.
    if (visibilityAttribute !== null && visibilityAttribute !== undefined) {
        return visibilityAttribute === 'true';
    }
    // Fallback to other methods of determining actual visibility.
    return (element.offsetHeight !== 0 ||
        element.offsetParent !== null ||
        // tslint:disable-next-line:no-any
        element.isVisible === true); // used as a workaround for testing.
}
/**
 * Determines if an element can receive focus programmatically or via a mouse click.
 * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key, meaning tabIndex != -1.
 *
 * @public
 */
function isElementTabbable(element, checkTabIndex) {
    // If this element is null or is disabled, it is not considered tabbable.
    if (!element || element.disabled) {
        return false;
    }
    var tabIndex = 0;
    var tabIndexAttributeValue = null;
    if (element && element.getAttribute) {
        tabIndexAttributeValue = element.getAttribute('tabIndex');
        if (tabIndexAttributeValue) {
            tabIndex = parseInt(tabIndexAttributeValue, 10);
        }
    }
    var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;
    var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;
    var result = !!element &&
        isFocusableAttribute !== 'false' &&
        (element.tagName === 'A' ||
            element.tagName === 'BUTTON' ||
            element.tagName === 'INPUT' ||
            element.tagName === 'TEXTAREA' ||
            isFocusableAttribute === 'true' ||
            isTabIndexSet);
    return checkTabIndex ? tabIndex !== -1 && result : result;
}
/**
 * Determines if a given element is a focus zone.
 *
 * @public
 */
function isElementFocusZone(element) {
    return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));
}
/**
 * Determines if a given element is a focus sub zone.
 *
 * @public
 */
function isElementFocusSubZone(element) {
    return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');
}
/**
 * Determines if an element, or any of its children, contain focus.
 *
 * @public
 */
function doesElementContainFocus(element) {
    var document = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_4__["getDocument"])(element);
    var currentActiveElement = document && document.activeElement;
    if (currentActiveElement && Object(_dom_elementContains__WEBPACK_IMPORTED_MODULE_1__["elementContains"])(element, currentActiveElement)) {
        return true;
    }
    return false;
}
/**
 * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap
 * @param element - element to start searching from
 * @param noWrapDataAttribute - the no wrap data attribute to match (either)
 * @returns true if focus should wrap, false otherwise
 */
function shouldWrapFocus(element, noWrapDataAttribute) {
    return Object(_dom_elementContainsAttribute__WEBPACK_IMPORTED_MODULE_0__["elementContainsAttribute"])(element, noWrapDataAttribute) === 'true' ? false : true;
}
var targetToFocusOnNextRepaint = undefined;
/**
 * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,
 * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,
 * only the latest called focusAsync element will actually be focused
 * @param element - The element to focus
 */
function focusAsync(element) {
    if (element) {
        // An element was already queued to be focused, so replace that one with the new element
        if (targetToFocusOnNextRepaint) {
            targetToFocusOnNextRepaint = element;
            return;
        }
        targetToFocusOnNextRepaint = element;
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(element);
        if (win) {
            // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe
            win.requestAnimationFrame(function () {
                targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();
                // We are done focusing for this frame, so reset the queued focus element
                targetToFocusOnNextRepaint = undefined;
            });
        }
    }
}
/**
 * Finds the closest focusable element via an index path from a parent. See
 * `getElementIndexPath` for getting an index path from an element to a child.
 */
function getFocusableByIndexPath(parent, path) {
    var element = parent;
    for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {
        var index = path_1[_i];
        var nextChild = element.children[Math.min(index, element.children.length - 1)];
        if (!nextChild) {
            break;
        }
        element = nextChild;
    }
    element =
        isElementTabbable(element) && isElementVisible(element)
            ? element
            : getNextElement(parent, element, true) || getPreviousElement(parent, element);
    return element;
}
/**
 * Finds the element index path from a parent element to a child element.
 *
 * If you had this node structure: "A has children [B, C] and C has child D",
 * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.
 */
function getElementIndexPath(fromElement, toElement) {
    var path = [];
    while (toElement && fromElement && toElement !== fromElement) {
        var parent_1 = Object(_dom_getParent__WEBPACK_IMPORTED_MODULE_2__["getParent"])(toElement, true);
        if (parent_1 === null) {
            return [];
        }
        path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));
        toElement = parent_1;
    }
    return path;
}


/***/ }),

/***/ "../utilities/lib/getId.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return getId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return resetIds; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

// Initialize global window id.
var CURRENT_ID_PROPERTY = '__currentId__';
var DEFAULT_ID_STRING = 'id__';
// tslint:disable-next-line:no-any
var _global = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])() || {};
if (_global[CURRENT_ID_PROPERTY] === undefined) {
    _global[CURRENT_ID_PROPERTY] = 0;
}
/**
 * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)
 *
 * @public
 */
function getId(prefix) {
    var index = _global[CURRENT_ID_PROPERTY]++;
    return (prefix || DEFAULT_ID_STRING) + index;
}
/**
 * Resets id counter to an (optional) number.
 *
 * @public
 */
function resetIds(counter) {
    if (counter === void 0) { counter = 0; }
    _global[CURRENT_ID_PROPERTY] = counter;
}


/***/ }),

/***/ "../utilities/lib/hoist.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hoistMethods", function() { return hoistMethods; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unhoistMethods", function() { return unhoistMethods; });
var REACT_LIFECYCLE_EXCLUSIONS = [
    'setState',
    'render',
    'componentWillMount',
    'UNSAFE_componentWillMount',
    'componentDidMount',
    'componentWillReceiveProps',
    'UNSAFE_componentWillReceiveProps',
    'shouldComponentUpdate',
    'componentWillUpdate',
    'getSnapshotBeforeUpdate',
    'UNSAFE_componentWillUpdate',
    'componentDidUpdate',
    'componentWillUnmount'
];
/**
 * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.
 *
 * @public
 * @param destination - The instance of the object to hoist the methods onto.
 * @param source - The instance of the object where the methods are hoisted from.
 * @param exclusions - (Optional) What methods to exclude from being hoisted.
 * @returns An array of names of methods that were hoisted.
 */
function hoistMethods(
// tslint:disable-next-line:no-any
destination, 
// tslint:disable-next-line:no-any
source, exclusions) {
    if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }
    var hoisted = [];
    var _loop_1 = function (methodName) {
        if (typeof source[methodName] === 'function' &&
            destination[methodName] === undefined &&
            (!exclusions || exclusions.indexOf(methodName) === -1)) {
            hoisted.push(methodName);
            /* tslint:disable:no-function-expression */
            destination[methodName] = function () {
                source[methodName].apply(source, arguments);
            };
            /* tslint:enable */
        }
    };
    for (var methodName in source) {
        _loop_1(methodName);
    }
    return hoisted;
}
/**
 * Provides a method for convenience to unhoist hoisted methods.
 *
 * @public
 * @param source - The source object upon which methods were hoisted.
 * @param methodNames - An array of method names to unhoist.
 */
// tslint:disable-next-line:no-any
function unhoistMethods(source, methodNames) {
    methodNames.forEach(function (methodName) { return delete source[methodName]; });
}


/***/ }),

/***/ "../utilities/lib/hoistStatics.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hoistStatics", function() { return hoistStatics; });
/**
 * Allows you to hoist static functions in components.
 * Created for the purpose of fixing broken static functions in classes
 * that utilize decorators.
 *
 * @public
 * @param source - The object where the methods are hoisted from.
 * @param dest - The object to hoist the methods onto.
 * @returns The dest object with methods added
 */
function hoistStatics(source, dest) {
    for (var name_1 in source) {
        if (source.hasOwnProperty(name_1)) {
            // tslint:disable-next-line:no-any
            dest[name_1] = source[name_1];
        }
    }
    return dest;
}


/***/ }),

/***/ "../utilities/lib/ie11Detector.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIE11", function() { return isIE11; });
var isIE11 = function () {
    if (typeof window === 'undefined' || !window.navigator || !window.navigator.userAgent) {
        return false;
    }
    return window.navigator.userAgent.indexOf('rv:11.0') > -1;
};


/***/ }),

/***/ "../utilities/lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/Async.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Async", function() { return _Async__WEBPACK_IMPORTED_MODULE_0__["Async"]; });

/* harmony import */ var _AutoScroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/AutoScroll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScroll", function() { return _AutoScroll__WEBPACK_IMPORTED_MODULE_1__["AutoScroll"]; });

/* harmony import */ var _BaseComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/BaseComponent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _BaseComponent__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nullRender", function() { return _BaseComponent__WEBPACK_IMPORTED_MODULE_2__["nullRender"]; });

/* harmony import */ var _DelayedRender__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/DelayedRender.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DelayedRender", function() { return _DelayedRender__WEBPACK_IMPORTED_MODULE_3__["DelayedRender"]; });

/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/EventGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventGroup", function() { return _EventGroup__WEBPACK_IMPORTED_MODULE_4__["EventGroup"]; });

/* harmony import */ var _FabricPerformance__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../utilities/lib/FabricPerformance.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricPerformance", function() { return _FabricPerformance__WEBPACK_IMPORTED_MODULE_5__["FabricPerformance"]; });

/* harmony import */ var _GlobalSettings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../utilities/lib/GlobalSettings.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GlobalSettings", function() { return _GlobalSettings__WEBPACK_IMPORTED_MODULE_6__["GlobalSettings"]; });

/* harmony import */ var _KeyCodes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("../utilities/lib/KeyCodes.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCodes", function() { return _KeyCodes__WEBPACK_IMPORTED_MODULE_7__["KeyCodes"]; });

/* harmony import */ var _Rectangle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../utilities/lib/Rectangle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _Rectangle__WEBPACK_IMPORTED_MODULE_8__["Rectangle"]; });

/* harmony import */ var _appendFunction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("../utilities/lib/appendFunction.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendFunction", function() { return _appendFunction__WEBPACK_IMPORTED_MODULE_9__["appendFunction"]; });

/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("../utilities/lib/aria.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAriaAttributeValues", function() { return _aria__WEBPACK_IMPORTED_MODULE_10__["mergeAriaAttributeValues"]; });

/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("../utilities/lib/array.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["findIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["find"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createArray", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["createArray"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["toMatrix"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeIndex", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["removeIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replaceElement", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["replaceElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addElementAtIndex", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["addElementAtIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["flatten"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arraysEqual", function() { return _array__WEBPACK_IMPORTED_MODULE_11__["arraysEqual"]; });

/* harmony import */ var _asAsync__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("../utilities/lib/asAsync.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asAsync", function() { return _asAsync__WEBPACK_IMPORTED_MODULE_12__["asAsync"]; });

/* harmony import */ var _assertNever__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("../utilities/lib/assertNever.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNever", function() { return _assertNever__WEBPACK_IMPORTED_MODULE_13__["assertNever"]; });

/* harmony import */ var _classNamesFunction__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("../utilities/lib/classNamesFunction.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNamesFunction", function() { return _classNamesFunction__WEBPACK_IMPORTED_MODULE_14__["classNamesFunction"]; });

/* harmony import */ var _controlled__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("../utilities/lib/controlled.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isControlled", function() { return _controlled__WEBPACK_IMPORTED_MODULE_15__["isControlled"]; });

/* harmony import */ var _css__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("../utilities/lib/css.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "css", function() { return _css__WEBPACK_IMPORTED_MODULE_16__["css"]; });

/* harmony import */ var _customizations_Customizations__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("../utilities/lib/customizations/Customizations.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizations", function() { return _customizations_Customizations__WEBPACK_IMPORTED_MODULE_17__["Customizations"]; });

/* harmony import */ var _customizations_Customizer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("../utilities/lib/customizations/Customizer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizer", function() { return _customizations_Customizer__WEBPACK_IMPORTED_MODULE_18__["Customizer"]; });

/* harmony import */ var _customizations_CustomizerContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("../utilities/lib/customizations/CustomizerContext.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomizerContext", function() { return _customizations_CustomizerContext__WEBPACK_IMPORTED_MODULE_19__["CustomizerContext"]; });

/* harmony import */ var _customizations_customizable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("../utilities/lib/customizations/customizable.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customizable", function() { return _customizations_customizable__WEBPACK_IMPORTED_MODULE_20__["customizable"]; });

/* harmony import */ var _customizations_mergeCustomizations__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("../utilities/lib/customizations/mergeCustomizations.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCustomizations", function() { return _customizations_mergeCustomizations__WEBPACK_IMPORTED_MODULE_21__["mergeCustomizations"]; });

/* harmony import */ var _customizations_mergeSettings__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("../utilities/lib/customizations/mergeSettings.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeSettings", function() { return _customizations_mergeSettings__WEBPACK_IMPORTED_MODULE_22__["mergeSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScopedSettings", function() { return _customizations_mergeSettings__WEBPACK_IMPORTED_MODULE_22__["mergeScopedSettings"]; });

/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("../utilities/lib/dom.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getWindow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["elementContains"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["elementContainsAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["findElementRecursive"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getChildren"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getDocument"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getRect"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["getVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["isVirtualElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "on", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["on"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["portalContainsElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["raiseClick"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["DATA_PORTAL_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["setPortalAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _dom__WEBPACK_IMPORTED_MODULE_23__["setVirtualParent"]; });

/* harmony import */ var _extendComponent__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("../utilities/lib/extendComponent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendComponent", function() { return _extendComponent__WEBPACK_IMPORTED_MODULE_24__["extendComponent"]; });

/* harmony import */ var _focus__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("../utilities/lib/focus.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstFocusable", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getFirstFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastFocusable", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getLastFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstTabbable", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getFirstTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastTabbable", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getLastTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusFirstChild", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["focusFirstChild"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviousElement", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getPreviousElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextElement", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getNextElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["isElementVisible"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementTabbable", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["isElementTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusZone", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["isElementFocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusSubZone", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["isElementFocusSubZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doesElementContainFocus", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["doesElementContainFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldWrapFocus", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["shouldWrapFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusAsync", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["focusAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusableByIndexPath", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getFocusableByIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElementIndexPath", function() { return _focus__WEBPACK_IMPORTED_MODULE_25__["getElementIndexPath"]; });

/* harmony import */ var _getId__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("../utilities/lib/getId.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return _getId__WEBPACK_IMPORTED_MODULE_26__["getId"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return _getId__WEBPACK_IMPORTED_MODULE_26__["resetIds"]; });

/* harmony import */ var _hoist__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("../utilities/lib/hoist.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistMethods", function() { return _hoist__WEBPACK_IMPORTED_MODULE_27__["hoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unhoistMethods", function() { return _hoist__WEBPACK_IMPORTED_MODULE_27__["unhoistMethods"]; });

/* harmony import */ var _hoistStatics__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("../utilities/lib/hoistStatics.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistStatics", function() { return _hoistStatics__WEBPACK_IMPORTED_MODULE_28__["hoistStatics"]; });

/* harmony import */ var _initializeComponentRef__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("../utilities/lib/initializeComponentRef.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeComponentRef", function() { return _initializeComponentRef__WEBPACK_IMPORTED_MODULE_29__["initializeComponentRef"]; });

/* harmony import */ var _initializeFocusRects__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("../utilities/lib/initializeFocusRects.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return _initializeFocusRects__WEBPACK_IMPORTED_MODULE_30__["IsFocusVisibleClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeFocusRects", function() { return _initializeFocusRects__WEBPACK_IMPORTED_MODULE_30__["initializeFocusRects"]; });

/* harmony import */ var _initials__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("../utilities/lib/initials.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInitials", function() { return _initials__WEBPACK_IMPORTED_MODULE_31__["getInitials"]; });

/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("../utilities/lib/keyboard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDirectionalKeyCode", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_32__["isDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDirectionalKeyCode", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_32__["addDirectionalKeyCode"]; });

/* harmony import */ var _language__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("../utilities/lib/language.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return _language__WEBPACK_IMPORTED_MODULE_33__["getLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return _language__WEBPACK_IMPORTED_MODULE_33__["setLanguage"]; });

/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("../utilities/lib/math.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDistanceBetweenPoints", function() { return _math__WEBPACK_IMPORTED_MODULE_34__["getDistanceBetweenPoints"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fitContentToBounds", function() { return _math__WEBPACK_IMPORTED_MODULE_34__["fitContentToBounds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePrecision", function() { return _math__WEBPACK_IMPORTED_MODULE_34__["calculatePrecision"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _math__WEBPACK_IMPORTED_MODULE_34__["precisionRound"]; });

/* harmony import */ var _memoize__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("../utilities/lib/memoize.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMemoizeWeakMap", function() { return _memoize__WEBPACK_IMPORTED_MODULE_35__["setMemoizeWeakMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetMemoizations", function() { return _memoize__WEBPACK_IMPORTED_MODULE_35__["resetMemoizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return _memoize__WEBPACK_IMPORTED_MODULE_35__["memoize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeFunction", function() { return _memoize__WEBPACK_IMPORTED_MODULE_35__["memoizeFunction"]; });

/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("../utilities/lib/merge.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _merge__WEBPACK_IMPORTED_MODULE_36__["merge"]; });

/* harmony import */ var _mobileDetector__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__("../utilities/lib/mobileDetector.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIOS", function() { return _mobileDetector__WEBPACK_IMPORTED_MODULE_37__["isIOS"]; });

/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__("../utilities/lib/object.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _object__WEBPACK_IMPORTED_MODULE_38__["assign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filteredAssign", function() { return _object__WEBPACK_IMPORTED_MODULE_38__["filteredAssign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapEnumByName", function() { return _object__WEBPACK_IMPORTED_MODULE_38__["mapEnumByName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return _object__WEBPACK_IMPORTED_MODULE_38__["shallowCompare"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _object__WEBPACK_IMPORTED_MODULE_38__["values"]; });

/* harmony import */ var _osDetector__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__("../utilities/lib/osDetector.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMac", function() { return _osDetector__WEBPACK_IMPORTED_MODULE_39__["isMac"]; });

/* harmony import */ var _overflow__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__("../utilities/lib/overflow.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasHorizontalOverflow", function() { return _overflow__WEBPACK_IMPORTED_MODULE_40__["hasHorizontalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasVerticalOverflow", function() { return _overflow__WEBPACK_IMPORTED_MODULE_40__["hasVerticalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasOverflow", function() { return _overflow__WEBPACK_IMPORTED_MODULE_40__["hasOverflow"]; });

/* harmony import */ var _properties__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__("../utilities/lib/properties.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementEvents", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["baseElementEvents"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["baseElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "htmlElementProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["htmlElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "labelProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["labelProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audioProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["audioProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "videoProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["videoProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["olProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "liProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["liProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "anchorProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["anchorProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["buttonProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inputProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["inputProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAreaProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["textAreaProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["selectProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "optionProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["optionProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tableProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["tableProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["trProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["thProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tdProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["tdProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colGroupProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["colGroupProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["colProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["formProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iframeProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["iframeProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imgProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["imgProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imageProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["imageProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "divProperties", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["divProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNativeProps", function() { return _properties__WEBPACK_IMPORTED_MODULE_41__["getNativeProps"]; });

/* harmony import */ var _resources__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__("../utilities/lib/resources.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getResourceUrl", function() { return _resources__WEBPACK_IMPORTED_MODULE_42__["getResourceUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBaseUrl", function() { return _resources__WEBPACK_IMPORTED_MODULE_42__["setBaseUrl"]; });

/* harmony import */ var _rtl__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__("../utilities/lib/rtl.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return _rtl__WEBPACK_IMPORTED_MODULE_43__["getRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return _rtl__WEBPACK_IMPORTED_MODULE_43__["setRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTLSafeKeyCode", function() { return _rtl__WEBPACK_IMPORTED_MODULE_43__["getRTLSafeKeyCode"]; });

/* harmony import */ var _safeRequestAnimationFrame__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__("../utilities/lib/safeRequestAnimationFrame.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeRequestAnimationFrame", function() { return _safeRequestAnimationFrame__WEBPACK_IMPORTED_MODULE_44__["safeRequestAnimationFrame"]; });

/* harmony import */ var _safeSetTimeout__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__("../utilities/lib/safeSetTimeout.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeSetTimeout", function() { return _safeSetTimeout__WEBPACK_IMPORTED_MODULE_45__["safeSetTimeout"]; });

/* harmony import */ var _scroll__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__("../utilities/lib/scroll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_IS_SCROLLABLE_ATTRIBUTE", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["DATA_IS_SCROLLABLE_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowScrollOnElement", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["allowScrollOnElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableBodyScroll", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["disableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableBodyScroll", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["enableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["getScrollbarWidth"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return _scroll__WEBPACK_IMPORTED_MODULE_46__["findScrollableParent"]; });

/* harmony import */ var _selection_index__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__("../utilities/lib/selection/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_47__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_47__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_47__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _selection_index__WEBPACK_IMPORTED_MODULE_47__["Selection"]; });

/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__("../utilities/lib/string.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _string__WEBPACK_IMPORTED_MODULE_48__["format"]; });

/* harmony import */ var _styled__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__("../utilities/lib/styled.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return _styled__WEBPACK_IMPORTED_MODULE_49__["styled"]; });

/* harmony import */ var _warn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__("../utilities/lib/warn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["warn"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["setWarningCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["warnConditionallyRequiredProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["resetControlledWarnings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["warnControlledUsage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["warnDeprecations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _warn__WEBPACK_IMPORTED_MODULE_50__["warnMutuallyExclusive"]; });

/* harmony import */ var _ie11Detector__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__("../utilities/lib/ie11Detector.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIE11", function() { return _ie11Detector__WEBPACK_IMPORTED_MODULE_51__["isIE11"]; });

/* harmony import */ var _setFocusVisibility__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__("../utilities/lib/setFocusVisibility.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setFocusVisibility", function() { return _setFocusVisibility__WEBPACK_IMPORTED_MODULE_52__["setFocusVisibility"]; });

/* harmony import */ var _dom_setSSR__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__("../utilities/lib/dom/setSSR.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSSR", function() { return _dom_setSSR__WEBPACK_IMPORTED_MODULE_53__["setSSR"]; });

/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__("../utilities/lib/version.js");

























































/***/ }),

/***/ "../utilities/lib/initializeComponentRef.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeComponentRef", function() { return initializeComponentRef; });
/* harmony import */ var _extendComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/extendComponent.js");

/**
 * Helper to manage componentRef resolution. Internally appends logic to
 * lifetime methods to resolve componentRef to the passed in object.
 *
 * Usage: call initializeComponentRef(this) in the constructor,
 */
function initializeComponentRef(obj) {
    Object(_extendComponent__WEBPACK_IMPORTED_MODULE_0__["extendComponent"])(obj, {
        componentDidMount: _onMount,
        componentDidUpdate: _onUpdate,
        componentWillUnmount: _onUnmount
    });
}
function _onMount() {
    _setComponentRef(this.props.componentRef, this);
}
function _onUpdate(prevProps) {
    if (prevProps.componentRef !== this.props.componentRef) {
        // tslint:disable-next-line:no-any
        _setComponentRef(prevProps.componentRef, null);
        _setComponentRef(this.props.componentRef, this);
    }
}
function _onUnmount() {
    _setComponentRef(this.props.componentRef, null);
}
function _setComponentRef(componentRef, value) {
    if (componentRef) {
        if (typeof componentRef === 'object') {
            componentRef.current = value;
        }
        else if (typeof componentRef === 'function') {
            componentRef(value);
        }
    }
}


/***/ }),

/***/ "../utilities/lib/initializeDir.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeDir", function() { return initializeDir; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

function initializeDir(win) {
    var w = (win || Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])());
    if (w && !w.__hasInitializedDir__) {
        w.__hasInitializedDir__ = true;
        // Ensure that the documentElement has a 'dir' attribute.
        var documentElement = w.document.documentElement;
        if (!documentElement.hasAttribute('dir')) {
            documentElement.setAttribute('dir', 'ltr');
        }
    }
}


/***/ }),

/***/ "../utilities/lib/initializeFocusRects.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return IsFocusVisibleClassName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeFocusRects", function() { return initializeFocusRects; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");
/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/keyboard.js");


var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';
/**
 * Initializes the logic which:
 *
 * 1. Subscribes keydown and mousedown events. (It will only do it once per window,
 *    so it's safe to call this method multiple times.)
 * 2. When the user presses directional keyboard keys, adds the 'ms-Fabric--isFocusVisible' classname
 *    to the document body.
 * 3. When the user clicks a mouse button, we remove the classname if it exists.
 *
 * This logic allows components on the page to conditionally render focus treatments only
 * if the global classname exists, which simplifies logic overall.
 *
 * @param window - the window used to add the event listeners
 */
function initializeFocusRects(window) {
    var win = (window || Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])());
    if (win && !win.__hasInitializeFocusRects__) {
        win.__hasInitializeFocusRects__ = true;
        win.addEventListener('mousedown', _onMouseDown, true);
        win.addEventListener('keydown', _onKeyDown, true);
    }
}
function _onMouseDown(ev) {
    var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(ev.target);
    if (win) {
        var classList = win.document.body.classList;
        if (classList.contains(IsFocusVisibleClassName)) {
            classList.remove(IsFocusVisibleClassName);
        }
    }
}
function _onKeyDown(ev) {
    var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(ev.target);
    if (win) {
        var classList = win.document.body.classList;
        if (Object(_keyboard__WEBPACK_IMPORTED_MODULE_1__["isDirectionalKeyCode"])(ev.which) && !classList.contains(IsFocusVisibleClassName)) {
            classList.add(IsFocusVisibleClassName);
        }
    }
}


/***/ }),

/***/ "../utilities/lib/initials.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInitials", function() { return getInitials; });
/**
 * Regular expression matching characters to ignore when calculating the initials.
 * The first part matches characters within parenthesis, including the parenthesis.
 * The second part matches special ASCII characters except space, plus some unicode special characters.
 */
var UNWANTED_CHARS_REGEX = /\([^)]*\)|[\0-\u001F\!-/:-@\[-`\{-\u00BF\u0250-\u036F\uD800-\uFFFF]/g;
/**
 * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed
 * and number has been trimmed for whitespaces
 */
var PHONENUMBER_REGEX = /^\d+[\d\s]*(:?ext|x|)\s*\d+$/i;
/** Regular expression matching one or more spaces. */
var MULTIPLE_WHITESPACES_REGEX = /\s+/g;
/**
 * Regular expression matching languages for which we currently don't support initials.
 * Arabic:   Arabic, Arabic Supplement, Arabic Extended-A.
 * Korean:   Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.
 * Japanese: Hiragana, Katakana.
 * CJK:      CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs, CJK Unified Ideographs Extension B
 */
/* tslint:disable:max-line-length */
var UNSUPPORTED_TEXT_REGEX = /[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uAC00-\uD7AF\uD7B0-\uD7FF\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD869][\uDC00-\uDED6]/;
/* tslint:enable:max-line-length */
function getInitialsLatin(displayName, isRtl) {
    var initials = '';
    var splits = displayName.split(' ');
    if (splits.length === 2) {
        initials += splits[0].charAt(0).toUpperCase();
        initials += splits[1].charAt(0).toUpperCase();
    }
    else if (splits.length === 3) {
        initials += splits[0].charAt(0).toUpperCase();
        initials += splits[2].charAt(0).toUpperCase();
    }
    else if (splits.length !== 0) {
        initials += splits[0].charAt(0).toUpperCase();
    }
    if (isRtl && initials.length > 1) {
        return initials.charAt(1) + initials.charAt(0);
    }
    return initials;
}
function cleanupDisplayName(displayName) {
    displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');
    displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');
    displayName = displayName.trim();
    return displayName;
}
/**
 * Get (up to 2 characters) initials based on display name of the persona.
 *
 * @public
 */
function getInitials(displayName, isRtl, allowPhoneInitials) {
    if (!displayName) {
        return '';
    }
    displayName = cleanupDisplayName(displayName);
    // For names containing CJK characters, and phone numbers, we don't display initials
    if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {
        return '';
    }
    return getInitialsLatin(displayName, isRtl);
}


/***/ }),

/***/ "../utilities/lib/keyboard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDirectionalKeyCode", function() { return isDirectionalKeyCode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addDirectionalKeyCode", function() { return addDirectionalKeyCode; });
/* harmony import */ var _KeyCodes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/KeyCodes.js");
var _a;

var DirectionalKeyCodes = (_a = {},
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].up] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].down] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].left] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].right] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].home] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].end] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].tab] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].pageUp] = 1,
    _a[_KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].pageDown] = 1,
    _a);
/**
 * Returns true if the keycode is a directional keyboard key.
 */
function isDirectionalKeyCode(which) {
    return !!DirectionalKeyCodes[which];
}
/**
 * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.
 * This can be used to add global shortcut keys that directionally move from section to section within
 * an app or between focus trap zones.
 */
function addDirectionalKeyCode(which) {
    DirectionalKeyCodes[which] = 1;
}


/***/ }),

/***/ "../utilities/lib/language.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return getLanguage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return setLanguage; });
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getDocument.js");
/* harmony import */ var _localStorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/localStorage.js");


// Default to undefined so that we initialize on first read.
var _language;
/**
 * Gets the rtl state of the page (returns true if in rtl.)
 *
 * @public
 */
function getLanguage() {
    if (_language === undefined) {
        var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_0__["getDocument"])();
        var savedLanguage = Object(_localStorage__WEBPACK_IMPORTED_MODULE_1__["getItem"])('language');
        if (savedLanguage !== null) {
            _language = savedLanguage;
        }
        if (_language === undefined && doc) {
            _language = doc.documentElement.getAttribute('lang');
        }
        if (_language === undefined) {
            _language = 'en';
        }
    }
    return _language;
}
/**
 * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)
 *
 * @public
 */
function setLanguage(language, avoidPersisting) {
    if (avoidPersisting === void 0) { avoidPersisting = false; }
    var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_0__["getDocument"])();
    if (doc) {
        doc.documentElement.setAttribute('lang', language);
    }
    if (!avoidPersisting) {
        Object(_localStorage__WEBPACK_IMPORTED_MODULE_1__["setItem"])('language', language);
    }
    _language = language;
}


/***/ }),

/***/ "../utilities/lib/localStorage.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getItem", function() { return getItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setItem", function() { return setItem; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

/**
 * Fetches an item from local storage without throwing an exception
 * @param key The key of the item to fetch from local storage
 */
function getItem(key) {
    var result = null;
    try {
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])();
        result = win ? win.localStorage.getItem(key) : null;
    }
    catch (e) {
        /* Eat the exception */
    }
    return result;
}
/**
 * Inserts an item into local storage without throwing an exception
 * @param key The key of the item to add to local storage
 * @param data The data to put into local storage
 */
function setItem(key, data) {
    try {
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])();
        win && win.localStorage.setItem(key, data);
    }
    catch (e) {
        /* Eat the exception */
    }
}


/***/ }),

/***/ "../utilities/lib/math.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDistanceBetweenPoints", function() { return getDistanceBetweenPoints; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fitContentToBounds", function() { return fitContentToBounds; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculatePrecision", function() { return calculatePrecision; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return precisionRound; });
/**
 * Determines the distance between two points.
 *
 * @public
 */
function getDistanceBetweenPoints(point1, point2) {
    var distance = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));
    return distance;
}
/**
 * Produces a proportionally-scaled version of an input content size when fit to a bounding size.
 * Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally
 * using either `contain` or `cover` fit behaviors.
 * Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.
 * With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.
 * With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.
 * By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.
 *
 * @param options - the options for the bounds fit operation
 */
function fitContentToBounds(options) {
    var contentSize = options.contentSize, boundsSize = options.boundsSize, _a = options.mode, mode = _a === void 0 ? 'contain' : _a, _b = options.maxScale, maxScale = _b === void 0 ? 1 : _b;
    var contentAspectRatio = contentSize.width / contentSize.height;
    var boundsAspectRatio = boundsSize.width / boundsSize.height;
    var scale;
    if (mode === 'contain' ? contentAspectRatio > boundsAspectRatio : contentAspectRatio < boundsAspectRatio) {
        scale = boundsSize.width / contentSize.width;
    }
    else {
        scale = boundsSize.height / contentSize.height;
    }
    var finalScale = Math.min(maxScale, scale);
    return {
        width: contentSize.width * finalScale,
        height: contentSize.height * finalScale
    };
}
/**
 * Calculates a number's precision based on the number of trailing
 * zeros if the number does not have a decimal indicated by a negative
 * precision. Otherwise, it calculates the number of digits after
 * the decimal point indicated by a positive precision.
 * @param value - the value to determine the precision of
 */
function calculatePrecision(value) {
    /**
     * Group 1:
     * [1-9]([0]+$) matches trailing zeros
     * Group 2:
     * \.([0-9]*) matches all digits after a decimal point.
     */
    var groups = /[1-9]([0]+$)|\.([0-9]*)/.exec(String(value));
    if (!groups) {
        return 0;
    }
    if (groups[1]) {
        return -groups[1].length;
    }
    if (groups[2]) {
        return groups[2].length;
    }
    return 0;
}
/**
 * Rounds a number to a certain level of precision. Accepts negative precision.
 * @param value - The value that is being rounded.
 * @param precision - The number of decimal places to round the number to
 */
function precisionRound(value, precision, base) {
    if (base === void 0) { base = 10; }
    var exp = Math.pow(base, precision);
    return Math.round(value * exp) / exp;
}


/***/ }),

/***/ "../utilities/lib/memoize.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMemoizeWeakMap", function() { return setMemoizeWeakMap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetMemoizations", function() { return resetMemoizations; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return memoize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "memoizeFunction", function() { return memoizeFunction; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");

var stylesheet = _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
if (stylesheet && stylesheet.onReset) {
    _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance().onReset(resetMemoizations);
}
var _resetCounter = 0;
var _emptyObject = { empty: true };
var _dictionary = {};
var _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;
/**
 *  Test utility for providing a custom weakmap.
 *
 * @internal
 * */
function setMemoizeWeakMap(weakMap) {
    _weakMap = weakMap;
}
/**
 * Reset memoizations.
 */
function resetMemoizations() {
    _resetCounter++;
}
/**
 * Memoize decorator to be used on class methods. WARNING: the `this` reference
 * will be inaccessible within a memoized method, given that a cached method's `this`
 * would not be instance-specific.
 *
 * @public
 */
function memoize(target, key, descriptor) {
    // We bind to "null" to prevent people from inadvertently pulling values from "this",
    // rather than passing them in as input values which can be memoized.
    var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));
    return {
        configurable: true,
        get: function () {
            return fn;
        }
    };
}
/**
 * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.
 * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise
 * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in
 * undefined for a value and relying on a default function will execute it the first time, but will not
 * re-evaluate subsequent times which may have been unexpected.
 *
 * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is
 * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard
 * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.
 *
 * @public
 * @param cb - The function to memoize.
 * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.
 * @returns A memoized version of the function.
 */
function memoizeFunction(cb, maxCacheSize) {
    if (maxCacheSize === void 0) { maxCacheSize = 100; }
    // Avoid breaking scenarios which don't have weak map.
    if (!_weakMap) {
        return cb;
    }
    var rootNode;
    var cacheSize = 0;
    var localResetCounter = _resetCounter;
    // tslint:disable-next-line:no-function-expression
    return function memoizedFunction() {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        var currentNode = rootNode;
        if (rootNode === undefined || localResetCounter !== _resetCounter || (maxCacheSize > 0 && cacheSize > maxCacheSize)) {
            rootNode = _createNode();
            cacheSize = 0;
            localResetCounter = _resetCounter;
        }
        currentNode = rootNode;
        // Traverse the tree until we find the match.
        for (var i = 0; i < args.length; i++) {
            var arg = _normalizeArg(args[i]);
            if (!currentNode.map.has(arg)) {
                currentNode.map.set(arg, _createNode());
            }
            currentNode = currentNode.map.get(arg);
        }
        if (!currentNode.hasOwnProperty('value')) {
            currentNode.value = cb.apply(void 0, args);
            cacheSize++;
        }
        return currentNode.value;
    };
}
function _normalizeArg(val) {
    if (!val) {
        return _emptyObject;
    }
    else if (typeof val === 'object' || typeof val === 'function') {
        return val;
    }
    else if (!_dictionary[val]) {
        _dictionary[val] = { val: val };
    }
    return _dictionary[val];
}
function _createNode() {
    return {
        map: _weakMap ? new _weakMap() : null
    };
}


/***/ }),

/***/ "../utilities/lib/merge.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
/**
 * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged
 * together in the order provided. If an object creates a circular reference, it will assign the
 * original reference.
 */
function merge(target) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
        var arg = args_1[_a];
        _merge(target || {}, arg);
    }
    return target;
}
/**
 * The _merge helper iterates through all props on source and assigns them to target.
 * When the value is an object, we will create a deep clone of the object. However if
 * there is a circular reference, the value will not be deep cloned and will persist
 * the reference.
 */
// tslint:disable-next-line:no-any
function _merge(target, source, circularReferences) {
    if (circularReferences === void 0) { circularReferences = []; }
    circularReferences.push(source);
    for (var name_1 in source) {
        if (source.hasOwnProperty(name_1)) {
            var value = source[name_1];
            if (typeof value === 'object') {
                var isCircularReference = circularReferences.indexOf(value) > -1;
                target[name_1] = (isCircularReference ? value : _merge(target[name_1] || {}, value, circularReferences));
            }
            else {
                target[name_1] = value;
            }
        }
    }
    circularReferences.pop();
    return target;
}


/***/ }),

/***/ "../utilities/lib/mobileDetector.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIOS", function() { return isIOS; });
/**
 * Returns true if and only if the user is on a iOS device.
 * Used to determine whether iOS-specific behavior should be applied.
 */
var isIOS = function () {
    if (!window || !window.navigator || !window.navigator.userAgent) {
        return false;
    }
    return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);
};


/***/ }),

/***/ "../utilities/lib/object.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return shallowCompare; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filteredAssign", function() { return filteredAssign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapEnumByName", function() { return mapEnumByName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "values", function() { return values; });
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _getId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/getId.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return _getId__WEBPACK_IMPORTED_MODULE_1__["getId"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return _getId__WEBPACK_IMPORTED_MODULE_1__["resetIds"]; });




// tslint:disable-next-line:no-any
function checkProperties(a, b) {
    for (var propName in a) {
        if (a.hasOwnProperty(propName)) {
            if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {
                return false;
            }
        }
    }
    return true;
}
/**
 * Compares a to b and b to a.
 *
 * @public
 */
function shallowCompare(a, b) {
    return checkProperties(a, b) && checkProperties(b, a);
}
/**
 * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more
 * objects as arguments and they will be merged sequentially into the target. Note that this will
 * shallow merge; it will not create new cloned values for target members.
 *
 * @public
 * @param target - Target object to merge following object arguments into.
 * @param args - One or more objects that will be mixed into the target in the order they are provided.
 * @returns Resulting merged target.
 */
// tslint:disable-next-line:no-any
function assign(target) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    return filteredAssign.apply(this, [null, target].concat(args));
}
/**
 * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter
 * the resulting merges. This allows for scenarios where you want to merge "everything except that one thing"
 * or "properties that start with data-". Note that this will shallow merge; it will not create new cloned
 * values for target members.
 *
 * @public
 * @param isAllowed - Callback to determine if the given propName is allowed in the result.
 * @param target - Target object to merge following object arguments into.
 * @param args - One or more objects that will be mixed into the target in the order they are provided.
 * @returns Resulting merged target.
 */
// tslint:disable-next-line:no-any
function filteredAssign(isAllowed, target) {
    var args = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        args[_i - 2] = arguments[_i];
    }
    target = target || {};
    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
        var sourceObject = args_1[_a];
        if (sourceObject) {
            for (var propName in sourceObject) {
                if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {
                    target[propName] = sourceObject[propName];
                }
            }
        }
    }
    return target;
}
// Configure ids to reset on stylesheet resets.
var stylesheet = _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"].getInstance();
if (stylesheet && stylesheet.onReset) {
    stylesheet.onReset(_getId__WEBPACK_IMPORTED_MODULE_1__["resetIds"]);
}
/* Takes an enum and iterates over each value of the enum (as a string), running the callback on each, returning a mapped array.
 * The callback takes as a first parameter the string that represents the name of the entry, and the second parameter is the
 * value of that entry, which is the value you'd normally use when using the enum (usually a number).
 * */
function mapEnumByName(
// tslint:disable-next-line:no-any
theEnum, callback) {
    // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call
    return Object.keys(theEnum)
        .map(function (p) {
        // map on each property name as a string
        if (String(Number(p)) !== p) {
            // if the property is not just a number (because enums in TypeScript will map both ways)
            return callback(p, theEnum[p]);
        }
    })
        .filter(function (v) { return !!v; }); // only return elements with values
}
/**
 * Get all values in an object dictionary
 *
 * @param obj - The dictionary to get values for
 */
// tslint:disable-next-line:no-any
function values(obj) {
    return Object.keys(obj).reduce(function (arr, key) {
        arr.push(obj[key]);
        return arr;
    }, []);
}


/***/ }),

/***/ "../utilities/lib/osDetector.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMac", function() { return isMac; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

var isMacResult;
/**
 * Returns true if the user is on a Mac. Caches the result value.
 * @param reset - Reset the cached result value (mainly for testing).
 */
function isMac(reset) {
    if (typeof isMacResult === 'undefined' || reset) {
        var win = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])();
        var userAgent = win && win.navigator.userAgent;
        isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;
    }
    return !!isMacResult;
}


/***/ }),

/***/ "../utilities/lib/overflow.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasHorizontalOverflow", function() { return hasHorizontalOverflow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasVerticalOverflow", function() { return hasVerticalOverflow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasOverflow", function() { return hasOverflow; });
/**
 * Detects whether an element's content has horizontal overflow
 *
 * @public
 * @param element - Element to check for overflow
 * @returns True if element's content overflows
 */
function hasHorizontalOverflow(element) {
    return element.clientWidth < element.scrollWidth;
}
/**
 * Detects whether an element's content has vertical overflow
 *
 * @public
 * @param element - Element to check for overflow
 * @returns True if element's content overflows
 */
function hasVerticalOverflow(element) {
    return element.clientHeight < element.scrollHeight;
}
/**
 * Detects whether an element's content has overflow in any direction
 *
 * @public
 * @param element - Element to check for overflow
 * @returns True if element's content overflows
 */
function hasOverflow(element) {
    return hasHorizontalOverflow(element) || hasVerticalOverflow(element);
}


/***/ }),

/***/ "../utilities/lib/properties.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "baseElementEvents", function() { return baseElementEvents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "baseElementProperties", function() { return baseElementProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "htmlElementProperties", function() { return htmlElementProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "labelProperties", function() { return labelProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "audioProperties", function() { return audioProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "videoProperties", function() { return videoProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "olProperties", function() { return olProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "liProperties", function() { return liProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anchorProperties", function() { return anchorProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttonProperties", function() { return buttonProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inputProperties", function() { return inputProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "textAreaProperties", function() { return textAreaProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectProperties", function() { return selectProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "optionProperties", function() { return optionProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tableProperties", function() { return tableProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trProperties", function() { return trProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "thProperties", function() { return thProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tdProperties", function() { return tdProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "colGroupProperties", function() { return colGroupProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "colProperties", function() { return colProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formProperties", function() { return formProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iframeProperties", function() { return iframeProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "imgProperties", function() { return imgProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "imageProperties", function() { return imageProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divProperties", function() { return divProperties; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNativeProps", function() { return getNativeProps; });
/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/object.js");

/**
 * An array of events that are allowed on every html element type.
 *
 * @public
 */
var baseElementEvents = [
    'onCopy',
    'onCut',
    'onPaste',
    'onCompositionEnd',
    'onCompositionStart',
    'onCompositionUpdate',
    'onFocus',
    'onFocusCapture',
    'onBlur',
    'onBlurCapture',
    'onChange',
    'onInput',
    'onSubmit',
    'onLoad',
    'onError',
    'onKeyDown',
    'onKeyDownCapture',
    'onKeyPress',
    'onKeyUp',
    'onAbort',
    'onCanPlay',
    'onCanPlayThrough',
    'onDurationChange',
    'onEmptied',
    'onEncrypted',
    'onEnded',
    'onLoadedData',
    'onLoadedMetadata',
    'onLoadStart',
    'onPause',
    'onPlay',
    'onPlaying',
    'onProgress',
    'onRateChange',
    'onSeeked',
    'onSeeking',
    'onStalled',
    'onSuspend',
    'onTimeUpdate',
    'onVolumeChange',
    'onWaiting',
    'onClick',
    'onClickCapture',
    'onContextMenu',
    'onDoubleClick',
    'onDrag',
    'onDragEnd',
    'onDragEnter',
    'onDragExit',
    'onDragLeave',
    'onDragOver',
    'onDragStart',
    'onDrop',
    'onMouseDown',
    'onMouseDownCapture',
    'onMouseEnter',
    'onMouseLeave',
    'onMouseMove',
    'onMouseOut',
    'onMouseOver',
    'onMouseUp',
    'onMouseUpCapture',
    'onSelect',
    'onTouchCancel',
    'onTouchEnd',
    'onTouchMove',
    'onTouchStart',
    'onScroll',
    'onWheel',
    'onPointerCancel',
    'onPointerDown',
    'onPointerEnter',
    'onPointerLeave',
    'onPointerMove',
    'onPointerOut',
    'onPointerOver',
    'onPointerUp',
    'onGotPointerCapture',
    'onLostPointerCapture'
];
/**
 * An array of element attributes which are allowed on every html element type.
 *
 * @public
 */
var baseElementProperties = [
    'accessKey',
    'children',
    'className',
    'contentEditable',
    'dir',
    'draggable',
    'hidden',
    'htmlFor',
    'id',
    'lang',
    'role',
    'style',
    'tabIndex',
    'title',
    'translate',
    'spellCheck',
    'name' // global
];
/**
 * An array of HTML element properties and events.
 *
 * @public
 */
var htmlElementProperties = baseElementProperties.concat(baseElementEvents);
/**
 * An array of LABEL tag properties and events.
 *
 * @public
 */
var labelProperties = htmlElementProperties.concat([
    'form' // button, fieldset, input, label, meter, object, output, select, textarea
]);
/**
 * An array of AUDIO tag properties and events.
 *
 * @public
 */
var audioProperties = htmlElementProperties.concat([
    'height',
    'loop',
    'muted',
    'preload',
    'src',
    'width' // canvas, embed, iframe, img, input, object, video
]);
/**
 * An array of VIDEO tag properties and events.
 *
 * @public
 */
var videoProperties = audioProperties.concat([
    'poster' // video
]);
/**
 * An array of OL tag properties and events.
 *
 * @public
 */
var olProperties = htmlElementProperties.concat([
    'start' // ol
]);
/**
 * An array of LI tag properties and events.
 *
 * @public
 */
var liProperties = htmlElementProperties.concat([
    'value' // button, input, li, option, meter, progress, param
]);
/**
 * An array of A tag properties and events.
 *
 * @public
 */
var anchorProperties = htmlElementProperties.concat([
    'download',
    'href',
    'hrefLang',
    'media',
    'rel',
    'target',
    'type' // a, button, input, link, menu, object, script, source, style
]);
/**
 * An array of BUTTON tag properties and events.
 *
 * @public
 */
var buttonProperties = htmlElementProperties.concat([
    'autoFocus',
    'disabled',
    'form',
    'formAction',
    'formEncType',
    'formMethod',
    'formNoValidate',
    'formTarget',
    'type',
    'value' // button, input, li, option, meter, progress, param,
]);
/**
 * An array of INPUT tag properties and events.
 *
 * @public
 */
var inputProperties = buttonProperties.concat([
    'accept',
    'alt',
    'autoComplete',
    'checked',
    'dirname',
    'form',
    'height',
    'inputMode',
    'list',
    'max',
    'maxLength',
    'min',
    'multiple',
    'pattern',
    'placeholder',
    'readOnly',
    'required',
    'src',
    'step',
    'size',
    'type',
    'value',
    'width' // canvas, embed, iframe, img, input, object, video
]);
/**
 * An array of TEXTAREA tag properties and events.
 *
 * @public
 */
var textAreaProperties = buttonProperties.concat([
    'cols',
    'dirname',
    'form',
    'maxLength',
    'placeholder',
    'readOnly',
    'required',
    'rows',
    'wrap' // textarea
]);
/**
 * An array of SELECT tag properties and events.
 *
 * @public
 */
var selectProperties = buttonProperties.concat([
    'form',
    'multiple',
    'required' // input, select, textarea
]);
var optionProperties = htmlElementProperties.concat([
    'selected',
    'value' // button, input, li, option, meter, progress, param
]);
/**
 * An array of TABLE tag properties and events.
 *
 * @public
 */
var tableProperties = htmlElementProperties.concat([
    'cellPadding',
    'cellSpacing' // table
]);
/**
 * An array of TR tag properties and events.
 *
 * @public
 */
var trProperties = htmlElementProperties;
/**
 * An array of TH tag properties and events.
 *
 * @public
 */
var thProperties = htmlElementProperties.concat([
    'rowSpan',
    'scope' // th
]);
/**
 * An array of TD tag properties and events.
 *
 * @public
 */
var tdProperties = htmlElementProperties.concat([
    'colSpan',
    'headers',
    'rowSpan',
    'scope' // th
]);
var colGroupProperties = htmlElementProperties.concat([
    'span' // col, colgroup
]);
var colProperties = htmlElementProperties.concat([
    'span' // col, colgroup
]);
/**
 * An array of FORM tag properties and events.
 *
 * @public
 */
var formProperties = htmlElementProperties.concat([
    'acceptCharset',
    'action',
    'encType',
    'encType',
    'method',
    'noValidate',
    'target' // form
]);
/**
 * An array of IFRAME tag properties and events.
 *
 * @public
 */
var iframeProperties = htmlElementProperties.concat([
    'allow',
    'allowFullScreen',
    'allowPaymentRequest',
    'allowTransparency',
    'csp',
    'height',
    'importance',
    'referrerPolicy',
    'sandbox',
    'src',
    'srcDoc',
    'width' // canvas, embed, iframe, img, input, object, video,
]);
/**
 * An array of IMAGE tag properties and events.
 *
 * @public
 */
var imgProperties = htmlElementProperties.concat([
    'alt',
    'crossOrigin',
    'height',
    'src',
    'srcSet',
    'useMap',
    'width' // canvas, embed, iframe, img, input, object, video
]);
/**
 * @deprecated Use imgProperties for img elements.
 */
var imageProperties = imgProperties;
/**
 * An array of DIV tag properties and events.
 *
 * @public
 */
var divProperties = htmlElementProperties;
/**
 * Gets native supported props for an html element provided the allowance set. Use one of the property
 * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given
 * props set. Note that all data- and aria- prefixed attributes will be allowed.
 * NOTE: getNativeProps should always be applied first when adding props to a react component. The
 * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.
 * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to
 * the component after an onClick function is added, then the getNativeProps onClick will override it.
 *
 * @public
 * @param props - The unfiltered input props
 * @param allowedPropsNames-  The array of allowed propnames.
 * @returns The filtered props
 */
function getNativeProps(props, allowedPropNames, excludedPropNames) {
    // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for JSX attributes,
    // but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.
    // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then return native props.
    // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797
    return Object(_object__WEBPACK_IMPORTED_MODULE_0__["filteredAssign"])(function (propName) {
        return ((!excludedPropNames || excludedPropNames.indexOf(propName) < 0) &&
            (propName.indexOf('data-') === 0 || propName.indexOf('aria-') === 0 || allowedPropNames.indexOf(propName) >= 0));
    }, {}, props);
}


/***/ }),

/***/ "../utilities/lib/resources.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getResourceUrl", function() { return getResourceUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setBaseUrl", function() { return setBaseUrl; });
var _baseUrl = '';
/** Sets the current base url used for fetching images. */
function getResourceUrl(url) {
    return _baseUrl + url;
}
/** Gets the current base url used for fetching images. */
function setBaseUrl(baseUrl) {
    _baseUrl = baseUrl;
}


/***/ }),

/***/ "../utilities/lib/rtl.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return getRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return setRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRTLSafeKeyCode", function() { return getRTLSafeKeyCode; });
/* harmony import */ var _KeyCodes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/KeyCodes.js");
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/dom/getDocument.js");
/* harmony import */ var _sessionStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/sessionStorage.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../merge-styles/lib/index.js");




var RTL_LOCAL_STORAGE_KEY = 'isRTL';
// Default to undefined so that we initialize on first read.
var _isRTL;
/**
 * Gets the rtl state of the page (returns true if in rtl.)
 */
function getRTL() {
    if (_isRTL === undefined) {
        // Fabric supports persisting the RTL setting between page refreshes via session storage
        var savedRTL = Object(_sessionStorage__WEBPACK_IMPORTED_MODULE_2__["getItem"])(RTL_LOCAL_STORAGE_KEY);
        if (savedRTL !== null) {
            _isRTL = savedRTL === '1';
            setRTL(_isRTL);
        }
        var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_1__["getDocument"])();
        if (_isRTL === undefined && doc) {
            _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';
            Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_3__["setRTL"])(_isRTL);
        }
    }
    return !!_isRTL;
}
/**
 * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)
 */
function setRTL(isRTL, persistSetting) {
    if (persistSetting === void 0) { persistSetting = false; }
    var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_1__["getDocument"])();
    if (doc) {
        doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');
    }
    if (persistSetting) {
        Object(_sessionStorage__WEBPACK_IMPORTED_MODULE_2__["setItem"])(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');
    }
    _isRTL = isRTL;
    Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_3__["setRTL"])(_isRTL);
}
/**
 * Returns the given key, but flips right/left arrows if necessary.
 */
function getRTLSafeKeyCode(key) {
    if (getRTL()) {
        if (key === _KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].left) {
            key = _KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].right;
        }
        else if (key === _KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].right) {
            key = _KeyCodes__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].left;
        }
    }
    return key;
}


/***/ }),

/***/ "../utilities/lib/safeRequestAnimationFrame.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "safeRequestAnimationFrame", function() { return safeRequestAnimationFrame; });
/* harmony import */ var _extendComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/extendComponent.js");

/**
 * Generates a function to be attached to a React component, which can be called
 * as a replacement to RAF. In-flight async calls will be auto canceled if the component
 * is unmounting before the async code is executed, preventing bugs where code
 * accesses things within the component after being unmounted.
 */
var safeRequestAnimationFrame = function (component) {
    var activeTimeouts;
    return function (cb) {
        if (!activeTimeouts) {
            activeTimeouts = new Set();
            Object(_extendComponent__WEBPACK_IMPORTED_MODULE_0__["extendComponent"])(component, {
                componentWillUnmount: function () {
                    activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });
                }
            });
        }
        var timeoutId = requestAnimationFrame(function () {
            activeTimeouts.delete(timeoutId);
            cb();
        });
        activeTimeouts.add(timeoutId);
    };
};


/***/ }),

/***/ "../utilities/lib/safeSetTimeout.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "safeSetTimeout", function() { return safeSetTimeout; });
/* harmony import */ var _extendComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/extendComponent.js");

/**
 * Generates a function to be attached to a React component, which can be called
 * as a replacement to setTimeout. In-flight async calls will be auto canceled if the component
 * is unmounting before the async code is executed, preventing bugs where code
 * accesses things within the component after being unmounted.
 */
var safeSetTimeout = function (component) {
    var activeTimeouts;
    return function (cb, duration) {
        if (!activeTimeouts) {
            activeTimeouts = new Set();
            Object(_extendComponent__WEBPACK_IMPORTED_MODULE_0__["extendComponent"])(component, {
                componentWillUnmount: function () {
                    activeTimeouts.forEach(function (id) { return clearTimeout(id); });
                }
            });
        }
        var timeoutId = setTimeout(function () {
            activeTimeouts.delete(timeoutId);
            cb();
        }, duration);
        activeTimeouts.add(timeoutId);
    };
};


/***/ }),

/***/ "../utilities/lib/scroll.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DATA_IS_SCROLLABLE_ATTRIBUTE", function() { return DATA_IS_SCROLLABLE_ATTRIBUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "allowScrollOnElement", function() { return allowScrollOnElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "disableBodyScroll", function() { return disableBodyScroll; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableBodyScroll", function() { return enableBodyScroll; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return getScrollbarWidth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return findScrollableParent; });
/* harmony import */ var _dom_getDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getDocument.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/dom/getWindow.js");



var _scrollbarWidth;
var _bodyScrollDisabledCount = 0;
var DisabledScrollClassName = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])({
    overflow: 'hidden !important'
});
/**
 * Placing this attribute on scrollable divs optimizes detection to know
 * if the div is scrollable or not (given we can avoid expensive operations
 * like getComputedStyle.)
 *
 * @public
 */
var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';
var _makeElementScrollAllower = function () {
    var _previousClientY = 0;
    var _element = null;
    // remember the clientY for future calls of _preventOverscrolling
    var _saveClientY = function (event) {
        if (event.targetTouches.length === 1) {
            _previousClientY = event.targetTouches[0].clientY;
        }
    };
    // prevent the body from scrolling when the user attempts
    // to scroll past the top or bottom of the element
    var _preventOverscrolling = function (event) {
        // only respond to a single-finger touch
        if (event.targetTouches.length !== 1) {
            return;
        }
        // prevent the body touchmove handler from firing
        // so that scrolling is allowed within the element
        event.stopPropagation();
        if (!_element) {
            return;
        }
        var clientY = event.targetTouches[0].clientY - _previousClientY;
        var scrollableParent = findScrollableParent(event.target);
        if (scrollableParent) {
            _element = scrollableParent;
        }
        // if the element is scrolled to the top,
        // prevent the user from scrolling up
        if (_element.scrollTop === 0 && clientY > 0) {
            event.preventDefault();
        }
        // if the element is scrolled to the bottom,
        // prevent the user from scrolling down
        if (_element.scrollHeight - _element.scrollTop <= _element.clientHeight && clientY < 0) {
            event.preventDefault();
        }
    };
    return function (element, events) {
        if (!element) {
            return;
        }
        events.on(element, 'touchstart', _saveClientY, { passive: false });
        events.on(element, 'touchmove', _preventOverscrolling, { passive: false });
        _element = element;
    };
};
/**
 * Allows the user to scroll within a element,
 * while preventing the user from scrolling the body
 */
var allowScrollOnElement = _makeElementScrollAllower();
var _disableIosBodyScroll = function (event) {
    event.preventDefault();
};
/**
 * Disables the body scrolling.
 *
 * @public
 */
function disableBodyScroll() {
    var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_0__["getDocument"])();
    if (doc && doc.body && !_bodyScrollDisabledCount) {
        doc.body.classList.add(DisabledScrollClassName);
        doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });
    }
    _bodyScrollDisabledCount++;
}
/**
 * Enables the body scrolling.
 *
 * @public
 */
function enableBodyScroll() {
    if (_bodyScrollDisabledCount > 0) {
        var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_0__["getDocument"])();
        if (doc && doc.body && _bodyScrollDisabledCount === 1) {
            doc.body.classList.remove(DisabledScrollClassName);
            doc.body.removeEventListener('touchmove', _disableIosBodyScroll);
        }
        _bodyScrollDisabledCount--;
    }
}
/**
 * Calculates the width of a scrollbar for the browser/os.
 *
 * @public
 */
function getScrollbarWidth() {
    if (_scrollbarWidth === undefined) {
        var scrollDiv = document.createElement('div');
        scrollDiv.style.setProperty('width', '100px');
        scrollDiv.style.setProperty('height', '100px');
        scrollDiv.style.setProperty('overflow', 'scroll');
        scrollDiv.style.setProperty('position', 'absolute');
        scrollDiv.style.setProperty('top', '-9999px');
        document.body.appendChild(scrollDiv);
        // Get the scrollbar width
        _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
        // Delete the DIV
        document.body.removeChild(scrollDiv);
    }
    return _scrollbarWidth;
}
/**
 * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns
 * document.body.
 *
 * @public
 */
function findScrollableParent(startingElement) {
    var el = startingElement;
    var doc = Object(_dom_getDocument__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(startingElement);
    // First do a quick scan for the scrollable attribute.
    while (el && el !== doc.body) {
        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {
            return el;
        }
        el = el.parentElement;
    }
    // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.
    el = startingElement;
    while (el && el !== doc.body) {
        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {
            var computedStyles = getComputedStyle(el);
            var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';
            if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {
                return el;
            }
        }
        el = el.parentElement;
    }
    // Fall back to window scroll.
    if (!el || el === doc.body) {
        // tslint:disable-next-line:no-any
        el = Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(startingElement);
    }
    return el;
}


/***/ }),

/***/ "../utilities/lib/selection/Selection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return Selection; });
/* harmony import */ var _Selection_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/selection/Selection.types.js");
/* harmony import */ var _EventGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/EventGroup.js");


/**
 * {@docCategory Selection}
 */
var Selection = /** @class */ (function () {
    function Selection(options) {
        if (options === void 0) { options = {}; }
        var onSelectionChanged = options.onSelectionChanged, getKey = options.getKey, _a = options.canSelectItem, canSelectItem = _a === void 0 ? function (item) { return true; } : _a, _b = options.selectionMode, selectionMode = _b === void 0 ? _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].multiple : _b;
        this.mode = selectionMode;
        this._getKey = getKey || defaultGetKey;
        this._changeEventSuppressionCount = 0;
        this._exemptedCount = 0;
        this._anchoredIndex = 0;
        this._unselectableCount = 0;
        this._onSelectionChanged = onSelectionChanged;
        this._canSelectItem = canSelectItem;
        this._isModal = false;
        this.setItems([], true);
        this.count = this.getSelectedCount();
    }
    Selection.prototype.canSelectItem = function (item, index) {
        if (typeof index === 'number' && index < 0) {
            return false;
        }
        return this._canSelectItem(item, index);
    };
    Selection.prototype.getKey = function (item, index) {
        var key = this._getKey(item, index);
        return typeof key === 'number' || key ? "" + key : '';
    };
    Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {
        this._changeEventSuppressionCount += isEnabled ? -1 : 1;
        if (this._changeEventSuppressionCount === 0 && this._hasChanged) {
            this._hasChanged = false;
            if (!suppressChange) {
                this._change();
            }
        }
    };
    Selection.prototype.isModal = function () {
        return this._isModal;
    };
    Selection.prototype.setModal = function (isModal) {
        if (this._isModal !== isModal) {
            this.setChangeEvents(false);
            this._isModal = isModal;
            if (!isModal) {
                this.setAllSelected(false);
            }
            this._change();
            this.setChangeEvents(true);
        }
    };
    /**
     * Selection needs the items, call this method to set them. If the set
     * of items is the same, this will re-evaluate selection and index maps.
     * Otherwise, shouldClear should be set to true, so that selection is
     * cleared.
     */
    Selection.prototype.setItems = function (items, shouldClear) {
        if (shouldClear === void 0) { shouldClear = true; }
        var newKeyToIndexMap = {};
        var newUnselectableIndices = {};
        var hasSelectionChanged = false;
        this.setChangeEvents(false);
        // Reset the unselectable count.
        this._unselectableCount = 0;
        // Build lookup table for quick selection evaluation.
        for (var i = 0; i < items.length; i++) {
            var item = items[i];
            if (item) {
                var key = this.getKey(item, i);
                if (key) {
                    newKeyToIndexMap[key] = i;
                }
            }
            newUnselectableIndices[i] = item && !this.canSelectItem(item);
            if (newUnselectableIndices[i]) {
                this._unselectableCount++;
            }
        }
        if (shouldClear || items.length === 0) {
            this._setAllSelected(false, true);
        }
        // Check the exemption list for discrepencies.
        var newExemptedIndicies = {};
        var newExemptedCount = 0;
        for (var indexProperty in this._exemptedIndices) {
            if (this._exemptedIndices.hasOwnProperty(indexProperty)) {
                var index = Number(indexProperty);
                var item = this._items[index];
                var exemptKey = item ? this.getKey(item, Number(index)) : undefined;
                var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;
                if (newIndex === undefined) {
                    // The item has likely been replaced or removed.
                    hasSelectionChanged = true;
                }
                else {
                    // We know the new index of the item. update the existing exemption table.
                    newExemptedIndicies[newIndex] = true;
                    newExemptedCount++;
                    hasSelectionChanged = hasSelectionChanged || newIndex !== index;
                }
            }
        }
        if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {
            // If everything was selected but the number of items has changed, selection has changed.
            hasSelectionChanged = true;
        }
        this._exemptedIndices = newExemptedIndicies;
        this._exemptedCount = newExemptedCount;
        this._keyToIndexMap = newKeyToIndexMap;
        this._unselectableIndices = newUnselectableIndices;
        this._items = items;
        this._selectedItems = null;
        if (hasSelectionChanged) {
            this._updateCount();
            this._change();
        }
        this.setChangeEvents(true);
    };
    Selection.prototype.getItems = function () {
        return this._items;
    };
    Selection.prototype.getSelection = function () {
        if (!this._selectedItems) {
            this._selectedItems = [];
            var items = this._items;
            if (items) {
                for (var i = 0; i < items.length; i++) {
                    if (this.isIndexSelected(i)) {
                        this._selectedItems.push(items[i]);
                    }
                }
            }
        }
        return this._selectedItems;
    };
    Selection.prototype.getSelectedCount = function () {
        return this._isAllSelected ? this._items.length - this._exemptedCount - this._unselectableCount : this._exemptedCount;
    };
    Selection.prototype.getSelectedIndices = function () {
        if (!this._selectedIndices) {
            this._selectedIndices = [];
            var items = this._items;
            if (items) {
                for (var i = 0; i < items.length; i++) {
                    if (this.isIndexSelected(i)) {
                        this._selectedIndices.push(i);
                    }
                }
            }
        }
        return this._selectedIndices;
    };
    Selection.prototype.isRangeSelected = function (fromIndex, count) {
        if (count === 0) {
            return false;
        }
        var endIndex = fromIndex + count;
        for (var i = fromIndex; i < endIndex; i++) {
            if (!this.isIndexSelected(i)) {
                return false;
            }
        }
        return true;
    };
    Selection.prototype.isAllSelected = function () {
        var selectableCount = this._items.length - this._unselectableCount;
        // In single mode, we can only have a max of 1 item.
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].single) {
            selectableCount = Math.min(selectableCount, 1);
        }
        return ((this.count > 0 && (this._isAllSelected && this._exemptedCount === 0)) ||
            (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));
    };
    Selection.prototype.isKeySelected = function (key) {
        var index = this._keyToIndexMap[key];
        return this.isIndexSelected(index);
    };
    Selection.prototype.isIndexSelected = function (index) {
        return !!((this.count > 0 && (this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index])) ||
            (!this._isAllSelected && this._exemptedIndices[index]));
    };
    Selection.prototype.setAllSelected = function (isAllSelected) {
        if (isAllSelected && this.mode !== _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].multiple) {
            return;
        }
        var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;
        this.setChangeEvents(false);
        if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {
            this._exemptedIndices = {};
            if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {
                this._exemptedCount = 0;
                this._isAllSelected = isAllSelected;
                this._change();
            }
            this._updateCount();
        }
        this.setChangeEvents(true);
    };
    Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {
        var index = this._keyToIndexMap[key];
        if (index >= 0) {
            this.setIndexSelected(index, isSelected, shouldAnchor);
        }
    };
    Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].none) {
            return;
        }
        // Clamp the index.
        index = Math.min(Math.max(0, index), this._items.length - 1);
        // No-op on out of bounds selections.
        if (index < 0 || index >= this._items.length) {
            return;
        }
        this.setChangeEvents(false);
        var isExempt = this._exemptedIndices[index];
        var canSelect = !this._unselectableIndices[index];
        if (canSelect) {
            if (isSelected && this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].single) {
                // If this is single-select, the previous selection should be removed.
                this._setAllSelected(false, true);
            }
            // Determine if we need to remove the exemption.
            if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {
                delete this._exemptedIndices[index];
                this._exemptedCount--;
            }
            // Determine if we need to add the exemption.
            if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {
                this._exemptedIndices[index] = true;
                this._exemptedCount++;
            }
            if (shouldAnchor) {
                this._anchoredIndex = index;
            }
        }
        this._updateCount();
        this.setChangeEvents(true);
    };
    Selection.prototype.selectToKey = function (key, clearSelection) {
        this.selectToIndex(this._keyToIndexMap[key], clearSelection);
    };
    Selection.prototype.selectToIndex = function (index, clearSelection) {
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].none) {
            return;
        }
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].single) {
            this.setIndexSelected(index, true, true);
            return;
        }
        var anchorIndex = this._anchoredIndex || 0;
        var startIndex = Math.min(index, anchorIndex);
        var endIndex = Math.max(index, anchorIndex);
        this.setChangeEvents(false);
        if (clearSelection) {
            this._setAllSelected(false, true);
        }
        for (; startIndex <= endIndex; startIndex++) {
            this.setIndexSelected(startIndex, true, false);
        }
        this.setChangeEvents(true);
    };
    Selection.prototype.toggleAllSelected = function () {
        this.setAllSelected(!this.isAllSelected());
    };
    Selection.prototype.toggleKeySelected = function (key) {
        this.setKeySelected(key, !this.isKeySelected(key), true);
    };
    Selection.prototype.toggleIndexSelected = function (index) {
        this.setIndexSelected(index, !this.isIndexSelected(index), true);
    };
    Selection.prototype.toggleRangeSelected = function (fromIndex, count) {
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].none) {
            return;
        }
        var isRangeSelected = this.isRangeSelected(fromIndex, count);
        var endIndex = fromIndex + count;
        if (this.mode === _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].single && count > 1) {
            return;
        }
        this.setChangeEvents(false);
        for (var i = fromIndex; i < endIndex; i++) {
            this.setIndexSelected(i, !isRangeSelected, false);
        }
        this.setChangeEvents(true);
    };
    Selection.prototype._updateCount = function (preserveModalState) {
        if (preserveModalState === void 0) { preserveModalState = false; }
        var count = this.getSelectedCount();
        if (count !== this.count) {
            this.count = count;
            this._change();
        }
        if (!this.count && !preserveModalState) {
            this.setModal(false);
        }
    };
    Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {
        if (preserveModalState === void 0) { preserveModalState = false; }
        if (isAllSelected && this.mode !== _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"].multiple) {
            return;
        }
        var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;
        this.setChangeEvents(false);
        if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {
            this._exemptedIndices = {};
            if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {
                this._exemptedCount = 0;
                this._isAllSelected = isAllSelected;
                this._change();
            }
            this._updateCount(preserveModalState);
        }
        this.setChangeEvents(true);
    };
    Selection.prototype._change = function () {
        if (this._changeEventSuppressionCount === 0) {
            this._selectedItems = null;
            this._selectedIndices = undefined;
            _EventGroup__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]);
            if (this._onSelectionChanged) {
                this._onSelectionChanged();
            }
        }
        else {
            this._hasChanged = true;
        }
    };
    return Selection;
}());

function defaultGetKey(item, index) {
    return item && item.key ? item.key : "" + index;
}


/***/ }),

/***/ "../utilities/lib/selection/Selection.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return SELECTION_CHANGE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return SelectionMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return SelectionDirection; });
var SELECTION_CHANGE = 'change';
/**
 * {@docCategory Selection}
 */
var SelectionMode;
(function (SelectionMode) {
    SelectionMode[SelectionMode["none"] = 0] = "none";
    SelectionMode[SelectionMode["single"] = 1] = "single";
    SelectionMode[SelectionMode["multiple"] = 2] = "multiple";
})(SelectionMode || (SelectionMode = {}));
/**
 * {@docCategory Selection}
 */
var SelectionDirection;
(function (SelectionDirection) {
    SelectionDirection[SelectionDirection["horizontal"] = 0] = "horizontal";
    SelectionDirection[SelectionDirection["vertical"] = 1] = "vertical";
})(SelectionDirection || (SelectionDirection = {}));


/***/ }),

/***/ "../utilities/lib/selection/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Selection_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/selection/Selection.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _Selection_types__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/selection/Selection.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _Selection__WEBPACK_IMPORTED_MODULE_1__["Selection"]; });





/***/ }),

/***/ "../utilities/lib/sessionStorage.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getItem", function() { return getItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setItem", function() { return setItem; });
/**
 * Fetches an item from session storage without throwing an exception
 * @param key The key of the item to fetch from session storage
 */
function getItem(key) {
    var result = null;
    try {
        result = window.sessionStorage.getItem(key);
    }
    catch (e) {
        /* Eat the exception */
    }
    return result;
}
/**
 * Inserts an item into session storage without throwing an exception
 * @param key The key of the item to add to session storage
 * @param data The data to put into session storage
 */
function setItem(key, data) {
    try {
        window.sessionStorage.setItem(key, data);
    }
    catch (e) {
        /* Eat the exception */
    }
}


/***/ }),

/***/ "../utilities/lib/setFocusVisibility.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return IsFocusVisibleClassName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFocusVisibility", function() { return setFocusVisibility; });
/* harmony import */ var _dom_getWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/dom/getWindow.js");

var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';
/**
 * Sets the visibility of focus styling.
 * By default, focus styling (the box surrounding a focused Button, for example) only show up when navigational
 * keypresses occur (through TAB, arrows, pgup/down, home and end), and are hidden when mouse interactions occur.
 * This API provides an imperative way to turn them on/off.
 * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page, and want focus to show up.
 *
 * @param enabled - whether to remove or add focus
 * @param target - optional target
 */
function setFocusVisibility(enabled, target) {
    var win = target ? Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(target) : Object(_dom_getWindow__WEBPACK_IMPORTED_MODULE_0__["getWindow"])();
    if (win) {
        var classList = win.document.body.classList;
        if (enabled) {
            classList.add(IsFocusVisibleClassName);
        }
        else {
            classList.remove(IsFocusVisibleClassName);
        }
    }
}


/***/ }),

/***/ "../utilities/lib/string.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; });
// Regex that finds { and } so they can be removed on a lookup for string format
var FORMAT_ARGS_REGEX = /[\{\}]/g;
// Regex that finds {#} so it can be replaced by the arguments in string format
var FORMAT_REGEX = /\{\d+\}/g;
/**
 * String format method, used for scenarios where at runtime you
 * need to evaluate a formatted string given a tokenized string. This
 * usually only is needed in localization scenarios.

 * @example
 * ```tsx
 * "I love {0} every {1}".format("CXP")
 * ```
 * will result in a Debug Exception.
 *
 * @public
 */
// tslint:disable-next-line:no-any
function format(s) {
    'use strict';
    var values = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        values[_i - 1] = arguments[_i];
    }
    var args = values;
    // Callback match function
    function replace_func(match) {
        // looks up in the args
        // tslint:disable-next-line:no-any
        var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];
        // catches undefined in nondebug and null in debug and nondebug
        if (replacement === null || replacement === undefined) {
            replacement = '';
        }
        return replacement;
    }
    return s.replace(FORMAT_REGEX, replace_func);
}


/***/ }),

/***/ "../utilities/lib/styled.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return styled; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../merge-styles/lib/index.js");
/* harmony import */ var _customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/customizations/Customizations.js");
/* harmony import */ var _customizations_CustomizerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/customizations/CustomizerContext.js");





var DefaultFields = ['theme', 'styles'];
/**
 * The styled HOC wrapper allows you to create a functional wrapper around a given component which will resolve
 * getStyles functional props, and mix customized props passed in using concatStyleSets.
 *
 * @example
 * ```tsx
 * export const Toggle = styled(
 *   ToggleBase,
 *   props => ({ root: { background: 'red' }})
 * );
 * ```
 * @param Component - The unstyled base component to render, which receives styles.
 * @param baseStyles - The styles which should be curried with the component.
 * @param getProps - A helper which provides default props.
 * @param customizable - An object which defines which props can be customized using the Customizer.
 * @param pure - A boolean indicating if the component should avoid re-rendering when props haven't changed.
 * Note that pure should not be used on components which allow children, or take in complex objects or
 * arrays as props which could mutate on every render.
 */
function styled(Component, baseStyles, getProps, customizable, pure) {
    customizable = customizable || { scope: '', fields: undefined };
    var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;
    var ParentComponent = pure ? react__WEBPACK_IMPORTED_MODULE_1__["PureComponent"] : react__WEBPACK_IMPORTED_MODULE_1__["Component"];
    var Wrapped = /** @class */ (function (_super) {
        tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Wrapped, _super);
        function Wrapped() {
            var _this = _super !== null && _super.apply(this, arguments) || this;
            _this._inCustomizerContext = false;
            _this._renderContent = function (context) {
                _this._inCustomizerContext = !!context.customizations.inCustomizerContext;
                var settings = _customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__["Customizations"].getSettings(fields, scope, context.customizations);
                var customizedStyles = settings.styles, dir = settings.dir, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](settings, ["styles", "dir"]);
                var additionalProps = getProps ? getProps(_this.props) : undefined;
                _this._updateStyles(customizedStyles);
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Component, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rest, additionalProps, _this.props, { styles: _this._styles }));
            };
            _this._onSettingsChanged = function () { return _this.forceUpdate(); };
            return _this;
        }
        Wrapped.prototype.render = function () {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_customizations_CustomizerContext__WEBPACK_IMPORTED_MODULE_4__["CustomizerContext"].Consumer, null, this._renderContent);
        };
        Wrapped.prototype.componentDidMount = function () {
            if (!this._inCustomizerContext) {
                _customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__["Customizations"].observe(this._onSettingsChanged);
            }
        };
        Wrapped.prototype.componentWillUnmount = function () {
            if (!this._inCustomizerContext) {
                _customizations_Customizations__WEBPACK_IMPORTED_MODULE_3__["Customizations"].unobserve(this._onSettingsChanged);
            }
        };
        Wrapped.prototype._updateStyles = function (customizedStyles) {
            var _this = this;
            // tslint:disable-next-line:no-any
            if (!this._styles || customizedStyles !== this._styles.__cachedInputs__[1] || !!this.props.styles) {
                // Cache the customized styles.
                // this._customizedStyles = customizedStyles;
                // Using styled components as the Component arg will result in nested styling arrays.
                this._styles = function (styleProps) { return Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_2__["concatStyleSetsWithProps"])(styleProps, baseStyles, customizedStyles, _this.props.styles); };
                // The __cachedInputs__ array is attached to the function and consumed by the
                // classNamesFunction as a list of keys to include for memoizing classnames.
                // tslint:disable-next-line:no-any
                this._styles.__cachedInputs__ = [baseStyles, customizedStyles, this.props.styles];
            }
        };
        // Function.prototype.name is an ES6 feature, so the cast to any is required until we're
        // able to drop IE 11 support and compile with ES6 libs
        // tslint:disable-next-line:no-any
        Wrapped.displayName = "Styled" + (Component.displayName || Component.name);
        return Wrapped;
    }(ParentComponent));
    // This preserves backwards compatibility.
    // tslint:disable-next-line:no-any
    return Wrapped;
}


/***/ }),

/***/ "../utilities/lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// @uifabric/utilities@7.5.0
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('@uifabric/utilities', '7.5.0');


/***/ }),

/***/ "../utilities/lib/warn.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _warn_warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/warn/warn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _warn_warn__WEBPACK_IMPORTED_MODULE_0__["warn"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return _warn_warn__WEBPACK_IMPORTED_MODULE_0__["setWarningCallback"]; });

/* harmony import */ var _warn_warnConditionallyRequiredProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/warn/warnConditionallyRequiredProps.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return _warn_warnConditionallyRequiredProps__WEBPACK_IMPORTED_MODULE_1__["warnConditionallyRequiredProps"]; });

/* harmony import */ var _warn_warnControlledUsage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../utilities/lib/warn/warnControlledUsage.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return _warn_warnControlledUsage__WEBPACK_IMPORTED_MODULE_2__["resetControlledWarnings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return _warn_warnControlledUsage__WEBPACK_IMPORTED_MODULE_2__["warnControlledUsage"]; });

/* harmony import */ var _warn_warnDeprecations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("../utilities/lib/warn/warnDeprecations.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return _warn_warnDeprecations__WEBPACK_IMPORTED_MODULE_3__["warnDeprecations"]; });

/* harmony import */ var _warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../utilities/lib/warn/warnMutuallyExclusive.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _warn_warnMutuallyExclusive__WEBPACK_IMPORTED_MODULE_4__["warnMutuallyExclusive"]; });








/***/ }),

/***/ "../utilities/lib/warn/warn.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return warn; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return setWarningCallback; });
var _warningCallback = undefined;
/**
 * Sends a warning to console, if the api is present.
 *
 * @public
 * @param message - Warning message.
 */
function warn(message) {
    if (_warningCallback && "development" !== 'production') {
        _warningCallback(message);
    }
    else if (console && console.warn) {
        console.warn(message);
    }
}
/**
 * Configures the warning callback. Passing in undefined will reset it to use the default
 * console.warn function.
 *
 * @public
 * @param warningCallback - Callback to override the generated warnings.
 */
function setWarningCallback(warningCallback) {
    _warningCallback = warningCallback;
}


/***/ }),

/***/ "../utilities/lib/warn/warnConditionallyRequiredProps.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return warnConditionallyRequiredProps; });
/* harmony import */ var _warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/warn/warn.js");

/**
 * Warns when props are required if a condition is met.
 *
 * @public
 * @param componentName - The name of the component being used.
 * @param props - The props passed into the component.
 * @param requiredProps - The name of the props that are required when the condition is met.
 * @param conditionalPropName - The name of the prop that the condition is based on.
 * @param condition - Whether the condition is met.
 */
function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {
    if (condition === true && "development" !== 'production') {
        for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {
            var requiredPropName = requiredProps_1[_i];
            if (!(requiredPropName in props)) {
                Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])(componentName + " property '" + requiredPropName + "' is required when '" + conditionalPropName + "' is used.'");
            }
        }
    }
}


/***/ }),

/***/ "../utilities/lib/warn/warnControlledUsage.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return resetControlledWarnings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return warnControlledUsage; });
/* harmony import */ var _warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/warn/warn.js");
/* harmony import */ var _controlled__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/controlled.js");


var warningsMap;
if (true) {
    warningsMap = {
        valueOnChange: {},
        valueDefaultValue: {},
        controlledToUncontrolled: {},
        uncontrolledToControlled: {}
    };
}
/** Reset controlled usage warnings for testing purposes. */
function resetControlledWarnings() {
    if (true) {
        warningsMap.valueOnChange = {};
        warningsMap.valueDefaultValue = {};
        warningsMap.controlledToUncontrolled = {};
        warningsMap.uncontrolledToControlled = {};
    }
}
/**
 * Check for and warn on the following error conditions with a form component:
 * - A value prop is provided (indicated it's being used as controlled) without a change handler,
 *    and the component is not read-only
 * - Both the value and defaultValue props are provided
 * - The component is attempting to switch between controlled and uncontrolled
 * - The value or default value are null (unless allowNullValue is set)
 *
 * The messages mimic the warnings React gives for these error conditions on input elements.
 * The warning will only be displayed once per component ID.
 */
function warnControlledUsage(params) {
    if (true) {
        var componentId = params.componentId, componentName = params.componentName, defaultValueProp = params.defaultValueProp, props = params.props, oldProps = params.oldProps, onChangeProp = params.onChangeProp, readOnlyProp = params.readOnlyProp, valueProp = params.valueProp;
        // This warning logic closely follows what React does for native <input> elements.
        var oldIsControlled = oldProps ? Object(_controlled__WEBPACK_IMPORTED_MODULE_1__["isControlled"])(oldProps, valueProp) : undefined;
        var newIsControlled = Object(_controlled__WEBPACK_IMPORTED_MODULE_1__["isControlled"])(props, valueProp);
        if (newIsControlled) {
            // onChange (or readOnly) must be provided if value is provided
            var hasOnChange = !!props[onChangeProp];
            var isReadOnly = !!(readOnlyProp && props[readOnlyProp]);
            if (!(hasOnChange || isReadOnly) && !warningsMap.valueOnChange[componentId]) {
                warningsMap.valueOnChange[componentId] = true;
                Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])("Warning: You provided a '" + valueProp + "' prop to a " + componentName + " without an '" + onChangeProp + "' handler. " +
                    ("This will render a read-only field. If the field should be mutable use '" + defaultValueProp + "'. ") +
                    ("Otherwise, set '" + onChangeProp + "'" + (readOnlyProp ? " or '" + readOnlyProp + "'" : '') + "."));
            }
            // value and defaultValue are mutually exclusive
            var defaultValue = props[defaultValueProp];
            if (defaultValue !== undefined && defaultValue !== null && !warningsMap.valueDefaultValue[componentId]) {
                warningsMap.valueDefaultValue[componentId] = true;
                Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])("Warning: You provided both '" + valueProp + "' and '" + defaultValueProp + "' to a " + componentName + ". " +
                    ("Form fields must be either controlled or uncontrolled (specify either the '" + valueProp + "' prop, ") +
                    ("or the '" + defaultValueProp + "' prop, but not both). Decide between using a controlled or uncontrolled ") +
                    (componentName + " and remove one of these props. More info: https://fb.me/react-controlled-components"));
            }
        }
        // Warn if switching between uncontrolled and controlled. (One difference between this implementation
        // and React's <input> is that if oldIsControlled is indeterminate and newIsControlled true, we don't warn.)
        if (oldProps && newIsControlled !== oldIsControlled) {
            var oldType = oldIsControlled ? 'a controlled' : 'an uncontrolled';
            var newType = oldIsControlled ? 'uncontrolled' : 'controlled';
            var warnMap = oldIsControlled ? warningsMap.controlledToUncontrolled : warningsMap.uncontrolledToControlled;
            if (!warnMap[componentId]) {
                warnMap[componentId] = true;
                Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])("Warning: A component is changing " + oldType + " " + componentName + " to be " + newType + ". " +
                    (componentName + "s should not switch from controlled to uncontrolled (or vice versa). ") +
                    "Decide between using controlled or uncontrolled for the lifetime of the component. " +
                    "More info: https://fb.me/react-controlled-components");
            }
        }
    }
}


/***/ }),

/***/ "../utilities/lib/warn/warnDeprecations.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return warnDeprecations; });
/* harmony import */ var _warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/warn/warn.js");

/**
 * Warns when a deprecated props are being used.
 *
 * @public
 * @param componentName - The name of the component being used.
 * @param props - The props passed into the component.
 * @param deprecationMap - The map of deprecations, where key is the prop name and the value is
 * either null or a replacement prop name.
 */
function warnDeprecations(componentName, props, deprecationMap) {
    if (true) {
        for (var propName in deprecationMap) {
            if (props && propName in props) {
                var deprecationMessage = componentName + " property '" + propName + "' was used but has been deprecated.";
                var replacementPropName = deprecationMap[propName];
                if (replacementPropName) {
                    deprecationMessage += " Use '" + replacementPropName + "' instead.";
                }
                Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])(deprecationMessage);
            }
        }
    }
}


/***/ }),

/***/ "../utilities/lib/warn/warnMutuallyExclusive.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return warnMutuallyExclusive; });
/* harmony import */ var _warn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/warn/warn.js");

/**
 * Warns when two props which are mutually exclusive are both being used.
 *
 * @public
 * @param componentName - The name of the component being used.
 * @param props - The props passed into the component.
 * @param exclusiveMap - A map where the key is a parameter, and the value is the other parameter.
 */
function warnMutuallyExclusive(componentName, props, exclusiveMap) {
    if (true) {
        for (var propName in exclusiveMap) {
            if (props && props[propName] !== undefined) {
                var propInExclusiveMapValue = exclusiveMap[propName];
                if (propInExclusiveMapValue && props[propInExclusiveMapValue] !== undefined) {
                    Object(_warn__WEBPACK_IMPORTED_MODULE_0__["warn"])(componentName + " property '" + propName + "' is mutually exclusive with '" + exclusiveMap[propName] + "'. Use one or the other.");
                }
            }
        }
    }
}


/***/ }),

/***/ "./lib/ActivityItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ActivityItem_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ActivityItem/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityItem", function() { return _components_ActivityItem_index__WEBPACK_IMPORTED_MODULE_0__["ActivityItem"]; });




/***/ }),

/***/ "./lib/Announced.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Announced_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Announced/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Announced", function() { return _components_Announced_index__WEBPACK_IMPORTED_MODULE_0__["Announced"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnouncedBase", function() { return _components_Announced_index__WEBPACK_IMPORTED_MODULE_0__["AnnouncedBase"]; });




/***/ }),

/***/ "./lib/Autofill.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Autofill_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Autofill/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _components_Autofill_index__WEBPACK_IMPORTED_MODULE_0__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _components_Autofill_index__WEBPACK_IMPORTED_MODULE_0__["BaseAutoFill"]; });




/***/ }),

/***/ "./lib/Breadcrumb.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Breadcrumb_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Breadcrumb/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _components_Breadcrumb_index__WEBPACK_IMPORTED_MODULE_0__["Breadcrumb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbBase", function() { return _components_Breadcrumb_index__WEBPACK_IMPORTED_MODULE_0__["BreadcrumbBase"]; });




/***/ }),

/***/ "./lib/Button.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Button_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Button/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["BaseButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementType", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["ElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonType", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["ButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["Button"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["ActionButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["CommandBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["CommandButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompoundButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["CompoundButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["DefaultButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["MessageBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrimaryButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["PrimaryButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return _components_Button_index__WEBPACK_IMPORTED_MODULE_0__["IconButton"]; });




/***/ }),

/***/ "./lib/Calendar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Calendar_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Calendar/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return _components_Calendar_index__WEBPACK_IMPORTED_MODULE_0__["Calendar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _components_Calendar_index__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _components_Calendar_index__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _components_Calendar_index__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"]; });




/***/ }),

/***/ "./lib/Callout.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Callout_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Callout/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Callout", function() { return _components_Callout_index__WEBPACK_IMPORTED_MODULE_0__["Callout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapCallout", function() { return _components_Callout_index__WEBPACK_IMPORTED_MODULE_0__["FocusTrapCallout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _components_Callout_index__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });




/***/ }),

/***/ "./lib/Check.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Check_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Check/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Check", function() { return _components_Check_index__WEBPACK_IMPORTED_MODULE_0__["Check"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCheck", function() { return _components_Check_index__WEBPACK_IMPORTED_MODULE_0__["getCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBase", function() { return _components_Check_index__WEBPACK_IMPORTED_MODULE_0__["CheckBase"]; });




/***/ }),

/***/ "./lib/Checkbox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Checkbox_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Checkbox/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return _components_Checkbox_index__WEBPACK_IMPORTED_MODULE_0__["Checkbox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxBase", function() { return _components_Checkbox_index__WEBPACK_IMPORTED_MODULE_0__["CheckboxBase"]; });




/***/ }),

/***/ "./lib/ChoiceGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ChoiceGroup_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ChoiceGroup/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroup", function() { return _components_ChoiceGroup_index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupBase", function() { return _components_ChoiceGroup_index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _components_ChoiceGroup_index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupOption"]; });




/***/ }),

/***/ "./lib/ChoiceGroupOption.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ChoiceGroup_ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _components_ChoiceGroup_ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupOption"]; });




/***/ }),

/***/ "./lib/Coachmark.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Coachmark_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Coachmark/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Coachmark", function() { return _components_Coachmark_index__WEBPACK_IMPORTED_MODULE_0__["Coachmark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_ATTRIBUTE_NAME", function() { return _components_Coachmark_index__WEBPACK_IMPORTED_MODULE_0__["COACHMARK_ATTRIBUTE_NAME"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CoachmarkBase", function() { return _components_Coachmark_index__WEBPACK_IMPORTED_MODULE_0__["CoachmarkBase"]; });




/***/ }),

/***/ "./lib/Color.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shade", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["Shade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidShade", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["isValidShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDark", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["isDark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getShade", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBackgroundShade", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getBackgroundShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getContrastRatio", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getContrastRatio"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_HUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MIN_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["MAX_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["HEX_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["RGBA_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["cssColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["rgb2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["clamp"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["hsl2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["hsl2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["hsv2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["rgb2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["hsv2hsl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getColorFromString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getColorFromRGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getColorFromHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["getFullColorString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["updateSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["updateH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["updateRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["updateA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["correctRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["correctHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return _utilities_color_index__WEBPACK_IMPORTED_MODULE_0__["correctHex"]; });




/***/ }),

/***/ "./lib/ColorPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ColorPicker_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ColorPicker/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _components_ColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["ColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerBase", function() { return _components_ColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerBase"]; });




/***/ }),

/***/ "./lib/ComboBox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ComboBox_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ComboBox/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _components_ComboBox_index__WEBPACK_IMPORTED_MODULE_0__["SelectableOptionMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComboBox", function() { return _components_ComboBox_index__WEBPACK_IMPORTED_MODULE_0__["ComboBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualizedComboBox", function() { return _components_ComboBox_index__WEBPACK_IMPORTED_MODULE_0__["VirtualizedComboBox"]; });




/***/ }),

/***/ "./lib/CommandBar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_CommandBar_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/CommandBar/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBar", function() { return _components_CommandBar_index__WEBPACK_IMPORTED_MODULE_0__["CommandBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarBase", function() { return _components_CommandBar_index__WEBPACK_IMPORTED_MODULE_0__["CommandBarBase"]; });




/***/ }),

/***/ "./lib/ContextualMenu.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ContextualMenu/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenu", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenu"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSubmenuItems", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["getSubmenuItems"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canAnyMenuItemsCheck", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["canAnyMenuItemsCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuBase", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemType", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItem", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemBase", function() { return _components_ContextualMenu_index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItemBase"]; });




/***/ }),

/***/ "./lib/DatePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DatePicker/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__["DatePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePickerBase", function() { return _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__["DatePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _components_DatePicker_index__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"]; });




/***/ }),

/***/ "./lib/DetailsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DetailsList/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowGlobalClassNames", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["CollapseAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeader", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderBase", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsHeaderBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectAllVisibility", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["SelectAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsList", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListBase", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildColumns", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["buildColumns"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnActionsMode", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["ColumnActionsMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConstrainMode", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["ConstrainMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDragEndLocation", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["ColumnDragEndLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListLayoutMode", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsListLayoutMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxVisibility", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["CheckboxVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRow", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsRow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowBase", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheck", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowFields", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowFields"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnBase", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["DetailsColumnBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _components_DetailsList_index__WEBPACK_IMPORTED_MODULE_0__["SelectionZone"]; });




/***/ }),

/***/ "./lib/Dialog.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Dialog/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["Dialog"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogBase", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContentBase", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogContentBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooter", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooterBase", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogFooterBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["ResponsiveMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogType", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["DialogType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _components_Dialog_index__WEBPACK_IMPORTED_MODULE_0__["Dialog"]; });





/***/ }),

/***/ "./lib/Divider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Divider_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Divider/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDivider", function() { return _components_Divider_index__WEBPACK_IMPORTED_MODULE_0__["VerticalDivider"]; });




/***/ }),

/***/ "./lib/DocumentCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DocumentCard/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCard", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardType", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActions", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardActions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivity", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardActivity"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetails", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardDetails"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocation", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreview", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardPreview"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImage", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardImage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitle", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardTitle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogo", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardLogo"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatus", function() { return _components_DocumentCard_index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardStatus"]; });




/***/ }),

/***/ "./lib/Dropdown.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Dropdown_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Dropdown/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return _components_Dropdown_index__WEBPACK_IMPORTED_MODULE_0__["Dropdown"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownBase", function() { return _components_Dropdown_index__WEBPACK_IMPORTED_MODULE_0__["DropdownBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMenuItemType", function() { return _components_Dropdown_index__WEBPACK_IMPORTED_MODULE_0__["DropdownMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _components_Dropdown_index__WEBPACK_IMPORTED_MODULE_0__["ResponsiveMode"]; });




/***/ }),

/***/ "./lib/ExtendedPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ExtendedPicker_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ExtendedPicker/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPicker", function() { return _components_ExtendedPicker_index__WEBPACK_IMPORTED_MODULE_0__["BaseExtendedPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPeoplePicker", function() { return _components_ExtendedPicker_index__WEBPACK_IMPORTED_MODULE_0__["BaseExtendedPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedPeoplePicker", function() { return _components_ExtendedPicker_index__WEBPACK_IMPORTED_MODULE_0__["ExtendedPeoplePicker"]; });




/***/ }),

/***/ "./lib/Fabric.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Fabric_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Fabric/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fabric", function() { return _components_Fabric_index__WEBPACK_IMPORTED_MODULE_0__["Fabric"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricBase", function() { return _components_Fabric_index__WEBPACK_IMPORTED_MODULE_0__["FabricBase"]; });




/***/ }),

/***/ "./lib/Facepile.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Facepile_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Facepile/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowButtonType", function() { return _components_Facepile_index__WEBPACK_IMPORTED_MODULE_0__["OverflowButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FacepileBase", function() { return _components_Facepile_index__WEBPACK_IMPORTED_MODULE_0__["FacepileBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Facepile", function() { return _components_Facepile_index__WEBPACK_IMPORTED_MODULE_0__["Facepile"]; });




/***/ }),

/***/ "./lib/FloatingPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FloatingPicker/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPicker", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["BaseFloatingPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPeoplePicker", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["BaseFloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingPeoplePicker", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["FloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItem", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["createItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsStore", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsStore"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemType", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsHeaderFooterItem", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsHeaderFooterItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsControl", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsControl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsCore", function() { return _components_FloatingPicker_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsCore"]; });




/***/ }),

/***/ "./lib/FocusTrapZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FocusTrapZone/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapZone", function() { return _components_FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_0__["FocusTrapZone"]; });




/***/ }),

/***/ "./lib/FocusZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_FocusZone_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FocusZone/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZone", function() { return _components_FocusZone_index__WEBPACK_IMPORTED_MODULE_0__["FocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneTabbableElements", function() { return _components_FocusZone_index__WEBPACK_IMPORTED_MODULE_0__["FocusZoneTabbableElements"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneDirection", function() { return _components_FocusZone_index__WEBPACK_IMPORTED_MODULE_0__["FocusZoneDirection"]; });




/***/ }),

/***/ "./lib/Foundation.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../foundation/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "legacyStyled", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["legacyStyled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createComponent", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["createComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withSlots", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["withSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFactory", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["createFactory"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSlots", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["getSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["ThemeProvider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useControlledState", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["useControlledState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getControlledDerivedProps", function() { return _uifabric_foundation__WEBPACK_IMPORTED_MODULE_0__["getControlledDerivedProps"]; });




/***/ }),

/***/ "./lib/Grid.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_grid_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/grid/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _utilities_grid_index__WEBPACK_IMPORTED_MODULE_0__["Grid"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _utilities_grid_index__WEBPACK_IMPORTED_MODULE_0__["GridCell"]; });




/***/ }),

/***/ "./lib/GroupedList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/GroupedList/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupSpacer", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupSpacer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedList", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupedList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedListBase", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupedListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["CollapseAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupHeader", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupFooter", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupShowAll", function() { return _components_GroupedList_index__WEBPACK_IMPORTED_MODULE_0__["GroupShowAll"]; });




/***/ }),

/***/ "./lib/HoverCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/HoverCard/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCard", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["HoverCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardBase", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["HoverCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OpenCardMode", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["OpenCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardType", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["HoverCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCard", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardBase", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardMode", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCard", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["PlainCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCardBase", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["PlainCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _components_HoverCard_index__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });




/***/ }),

/***/ "./lib/Icon.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Icon/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["Icon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconBase", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["IconBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconType", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["IconType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconContent", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["getIconContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontIcon", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["FontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFontIcon", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["getFontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageIcon", function() { return _components_Icon_index__WEBPACK_IMPORTED_MODULE_0__["ImageIcon"]; });




/***/ }),

/***/ "./lib/Icons.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_icons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../icons/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return _uifabric_icons__WEBPACK_IMPORTED_MODULE_0__["initializeIcons"]; });




/***/ }),

/***/ "./lib/Image.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Image_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Image/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _components_Image_index__WEBPACK_IMPORTED_MODULE_0__["Image"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageBase", function() { return _components_Image_index__WEBPACK_IMPORTED_MODULE_0__["ImageBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageFit", function() { return _components_Image_index__WEBPACK_IMPORTED_MODULE_0__["ImageFit"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageCoverStyle", function() { return _components_Image_index__WEBPACK_IMPORTED_MODULE_0__["ImageCoverStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageLoadState", function() { return _components_Image_index__WEBPACK_IMPORTED_MODULE_0__["ImageLoadState"]; });




/***/ }),

/***/ "./lib/Keytip.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Keytip_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Keytip/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keytip", function() { return _components_Keytip_index__WEBPACK_IMPORTED_MODULE_0__["Keytip"]; });




/***/ }),

/***/ "./lib/KeytipData.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_KeytipData_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/KeytipData/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipData", function() { return _components_KeytipData_index__WEBPACK_IMPORTED_MODULE_0__["KeytipData"]; });




/***/ }),

/***/ "./lib/KeytipLayer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_KeytipLayer_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/KeytipLayer/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayer", function() { return _components_KeytipLayer_index__WEBPACK_IMPORTED_MODULE_0__["KeytipLayer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayerBase", function() { return _components_KeytipLayer_index__WEBPACK_IMPORTED_MODULE_0__["KeytipLayerBase"]; });




/***/ }),

/***/ "./lib/Label.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Label_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Label/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelBase", function() { return _components_Label_index__WEBPACK_IMPORTED_MODULE_0__["LabelBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return _components_Label_index__WEBPACK_IMPORTED_MODULE_0__["Label"]; });




/***/ }),

/***/ "./lib/Layer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/version.js");
/* harmony import */ var _components_Layer_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Layer/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return _components_Layer_index__WEBPACK_IMPORTED_MODULE_1__["Layer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerBase", function() { return _components_Layer_index__WEBPACK_IMPORTED_MODULE_1__["LayerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerHost", function() { return _components_Layer_index__WEBPACK_IMPORTED_MODULE_1__["LayerHost"]; });





/***/ }),

/***/ "./lib/Link.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Link_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Link/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return _components_Link_index__WEBPACK_IMPORTED_MODULE_0__["Link"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinkBase", function() { return _components_Link_index__WEBPACK_IMPORTED_MODULE_0__["LinkBase"]; });




/***/ }),

/***/ "./lib/List.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_List_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/List/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _components_List_index__WEBPACK_IMPORTED_MODULE_0__["List"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollToMode", function() { return _components_List_index__WEBPACK_IMPORTED_MODULE_0__["ScrollToMode"]; });




/***/ }),

/***/ "./lib/MarqueeSelection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_MarqueeSelection_MarqueeSelection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/MarqueeSelection/MarqueeSelection.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MarqueeSelection", function() { return _components_MarqueeSelection_MarqueeSelection__WEBPACK_IMPORTED_MODULE_0__["MarqueeSelection"]; });

/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_1__["SelectionZone"]; });





/***/ }),

/***/ "./lib/MessageBar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_MessageBar_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/MessageBar/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBar", function() { return _components_MessageBar_index__WEBPACK_IMPORTED_MODULE_0__["MessageBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarBase", function() { return _components_MessageBar_index__WEBPACK_IMPORTED_MODULE_0__["MessageBarBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarType", function() { return _components_MessageBar_index__WEBPACK_IMPORTED_MODULE_0__["MessageBarType"]; });




/***/ }),

/***/ "./lib/Modal.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Modal_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Modal/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return _components_Modal_index__WEBPACK_IMPORTED_MODULE_0__["Modal"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalBase", function() { return _components_Modal_index__WEBPACK_IMPORTED_MODULE_0__["ModalBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _components_Modal_index__WEBPACK_IMPORTED_MODULE_0__["Modal"]; });





/***/ }),

/***/ "./lib/Nav.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Nav_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Nav/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return _components_Nav_index__WEBPACK_IMPORTED_MODULE_0__["Nav"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRelativeUrl", function() { return _components_Nav_index__WEBPACK_IMPORTED_MODULE_0__["isRelativeUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavBase", function() { return _components_Nav_index__WEBPACK_IMPORTED_MODULE_0__["NavBase"]; });




/***/ }),

/***/ "./lib/OverflowSet.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_OverflowSet_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/OverflowSet/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSet", function() { return _components_OverflowSet_index__WEBPACK_IMPORTED_MODULE_0__["OverflowSet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSetBase", function() { return _components_OverflowSet_index__WEBPACK_IMPORTED_MODULE_0__["OverflowSetBase"]; });




/***/ }),

/***/ "./lib/Overlay.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Overlay_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Overlay/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return _components_Overlay_index__WEBPACK_IMPORTED_MODULE_0__["Overlay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverlayBase", function() { return _components_Overlay_index__WEBPACK_IMPORTED_MODULE_0__["OverlayBase"]; });




/***/ }),

/***/ "./lib/Panel.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Panel_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Panel/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return _components_Panel_index__WEBPACK_IMPORTED_MODULE_0__["Panel"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PanelType", function() { return _components_Panel_index__WEBPACK_IMPORTED_MODULE_0__["PanelType"]; });




/***/ }),

/***/ "./lib/Persona.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["getPersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["Persona"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoin"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoinBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["personaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["personaPresenceSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["sizeBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["sizeToPixels"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["presenceBoolean"]; });




/***/ }),

/***/ "./lib/PersonaCoin.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["getPersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["Persona"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoin"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoinBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["personaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["personaPresenceSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["sizeBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["sizeToPixels"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return _components_Persona_index__WEBPACK_IMPORTED_MODULE_0__["presenceBoolean"]; });




/***/ }),

/***/ "./lib/Pickers.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/pickers/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suggestions", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["Suggestions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionActionType", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionActionType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItem", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsController", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsController"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["BaseAutoFill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["BasePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePickerListBelow", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["BasePickerListBelow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValidationState", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["ValidationState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeoplePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["BasePeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemberListPeoplePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["MemberListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePickerBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["NormalPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePickerBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["CompactPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePickerBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["ListPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createGenericItem", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["createGenericItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["NormalPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["CompactPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["ListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItem", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestionBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestion", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemSuggestion"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPickerBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPicker", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItem", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestionBase", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestion", function() { return _components_pickers_index__WEBPACK_IMPORTED_MODULE_0__["TagItemSuggestion"]; });




/***/ }),

/***/ "./lib/Pivot.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Pivot/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotItem", function() { return _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__["PivotItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Pivot", function() { return _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__["Pivot"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotBase", function() { return _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__["PivotBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkFormat", function() { return _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__["PivotLinkFormat"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkSize", function() { return _components_Pivot_index__WEBPACK_IMPORTED_MODULE_0__["PivotLinkSize"]; });




/***/ }),

/***/ "./lib/Popup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Popup_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Popup/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _components_Popup_index__WEBPACK_IMPORTED_MODULE_0__["Popup"]; });




/***/ }),

/***/ "./lib/PositioningContainer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Coachmark_PositioningContainer_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Coachmark/PositioningContainer/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositioningContainer", function() { return _components_Coachmark_PositioningContainer_index__WEBPACK_IMPORTED_MODULE_0__["PositioningContainer"]; });




/***/ }),

/***/ "./lib/ProgressIndicator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ProgressIndicator_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ProgressIndicator/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicator", function() { return _components_ProgressIndicator_index__WEBPACK_IMPORTED_MODULE_0__["ProgressIndicator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicatorBase", function() { return _components_ProgressIndicator_index__WEBPACK_IMPORTED_MODULE_0__["ProgressIndicatorBase"]; });




/***/ }),

/***/ "./lib/Rating.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Rating_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Rating/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _components_Rating_index__WEBPACK_IMPORTED_MODULE_0__["Rating"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingBase", function() { return _components_Rating_index__WEBPACK_IMPORTED_MODULE_0__["RatingBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingSize", function() { return _components_Rating_index__WEBPACK_IMPORTED_MODULE_0__["RatingSize"]; });




/***/ }),

/***/ "./lib/ResizeGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ResizeGroup/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroup", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMeasurementCache", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["getMeasurementCache"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextResizeGroupStateProvider", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["getNextResizeGroupStateProvider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MeasuredContext", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["MeasuredContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupBase", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupDirection", function() { return _components_ResizeGroup_index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroupDirection"]; });




/***/ }),

/***/ "./lib/ScrollablePane.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ScrollablePane_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ScrollablePane/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePane", function() { return _components_ScrollablePane_index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePane"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneBase", function() { return _components_ScrollablePane_index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePaneBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return _components_ScrollablePane_index__WEBPACK_IMPORTED_MODULE_0__["ScrollbarVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneContext", function() { return _components_ScrollablePane_index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePaneContext"]; });




/***/ }),

/***/ "./lib/SearchBox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_SearchBox_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SearchBox/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBox", function() { return _components_SearchBox_index__WEBPACK_IMPORTED_MODULE_0__["SearchBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBoxBase", function() { return _components_SearchBox_index__WEBPACK_IMPORTED_MODULE_0__["SearchBoxBase"]; });




/***/ }),

/***/ "./lib/SelectableOption.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selectableOption/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAllSelectedOptions", function() { return _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_0__["getAllSelectedOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_0__["SelectableOptionMenuItemType"]; });




/***/ }),

/***/ "./lib/SelectedItemsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_SelectedItemsList_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SelectedItemsList/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSelectedItemsList", function() { return _components_SelectedItemsList_index__WEBPACK_IMPORTED_MODULE_0__["BaseSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeopleSelectedItemsList", function() { return _components_SelectedItemsList_index__WEBPACK_IMPORTED_MODULE_0__["BasePeopleSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectedPeopleList", function() { return _components_SelectedItemsList_index__WEBPACK_IMPORTED_MODULE_0__["SelectedPeopleList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedSelectedItem", function() { return _components_SelectedItemsList_index__WEBPACK_IMPORTED_MODULE_0__["ExtendedSelectedItem"]; });




/***/ }),

/***/ "./lib/Selection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionZone"]; });




/***/ }),

/***/ "./lib/Separator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Separator_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Separator/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SeparatorBase", function() { return _components_Separator_index__WEBPACK_IMPORTED_MODULE_0__["SeparatorBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Separator", function() { return _components_Separator_index__WEBPACK_IMPORTED_MODULE_0__["Separator"]; });




/***/ }),

/***/ "./lib/Shimmer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Shimmer/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shimmer", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["Shimmer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerBase", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementType", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsDefaultHeights", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsDefaultHeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLine", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerLine"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLineBase", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerLineBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircle", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerCircle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircleBase", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerCircleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGap", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerGap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGapBase", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerGapBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroup", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroupBase", function() { return _components_Shimmer_index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsGroupBase"]; });




/***/ }),

/***/ "./lib/ShimmeredDetailsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_DetailsList_ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DetailsList/ShimmeredDetailsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsList", function() { return _components_DetailsList_ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_0__["ShimmeredDetailsList"]; });

/* harmony import */ var _components_DetailsList_ShimmeredDetailsList_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/ShimmeredDetailsList.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsListBase", function() { return _components_DetailsList_ShimmeredDetailsList_base__WEBPACK_IMPORTED_MODULE_1__["ShimmeredDetailsListBase"]; });





/***/ }),

/***/ "./lib/Slider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Slider_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Slider/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _components_Slider_index__WEBPACK_IMPORTED_MODULE_0__["Slider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ONKEYDOWN_TIMEOUT_DURATION", function() { return _components_Slider_index__WEBPACK_IMPORTED_MODULE_0__["ONKEYDOWN_TIMEOUT_DURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SliderBase", function() { return _components_Slider_index__WEBPACK_IMPORTED_MODULE_0__["SliderBase"]; });




/***/ }),

/***/ "./lib/SpinButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_SpinButton_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SpinButton/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardSpinDirection", function() { return _components_SpinButton_index__WEBPACK_IMPORTED_MODULE_0__["KeyboardSpinDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinButton", function() { return _components_SpinButton_index__WEBPACK_IMPORTED_MODULE_0__["SpinButton"]; });




/***/ }),

/***/ "./lib/Spinner.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Spinner_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Spinner/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _components_Spinner_index__WEBPACK_IMPORTED_MODULE_0__["Spinner"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerBase", function() { return _components_Spinner_index__WEBPACK_IMPORTED_MODULE_0__["SpinnerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerSize", function() { return _components_Spinner_index__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerType", function() { return _components_Spinner_index__WEBPACK_IMPORTED_MODULE_0__["SpinnerType"]; });




/***/ }),

/***/ "./lib/Stack.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Stack_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Stack/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackItem", function() { return _components_Stack_index__WEBPACK_IMPORTED_MODULE_0__["StackItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stack", function() { return _components_Stack_index__WEBPACK_IMPORTED_MODULE_0__["Stack"]; });




/***/ }),

/***/ "./lib/Sticky.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Sticky_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Sticky/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sticky", function() { return _components_Sticky_index__WEBPACK_IMPORTED_MODULE_0__["Sticky"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StickyPositionType", function() { return _components_Sticky_index__WEBPACK_IMPORTED_MODULE_0__["StickyPositionType"]; });




/***/ }),

/***/ "./lib/Styling.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/version.js");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../styling/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["AnimationClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["FontClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ColorClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["AnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["AnimationVariables"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["DefaultPalette"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["DefaultEffects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["DefaultFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["registerDefaultFontFaces"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["FontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["createFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["hiddenContentStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["PulsingBeaconAnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ThemeSettingName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["loadTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["createTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["registerOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["removeOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["buildClassMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["registerIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["registerIconAlias"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["unregisterIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["setIconOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getIconClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["Stylesheet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["concatStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["concatStyleSetsWithProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["fontFace"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["keyframes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["focusClear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getFocusOutlineStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getThemedContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelectorWhite"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelectorBlack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinXXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinUhfMobile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["normalize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["noWrap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getFadedOverflowStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["getPlaceholderStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _uifabric_styling__WEBPACK_IMPORTED_MODULE_1__["ZIndexes"]; });





/***/ }),

/***/ "./lib/SwatchColorPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_SwatchColorPicker_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SwatchColorPicker/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPicker", function() { return _components_SwatchColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["SwatchColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPickerBase", function() { return _components_SwatchColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["SwatchColorPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCell", function() { return _components_SwatchColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerGridCell"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCellBase", function() { return _components_SwatchColorPicker_index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerGridCellBase"]; });




/***/ }),

/***/ "./lib/TeachingBubble.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_TeachingBubble_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/TeachingBubble/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubble", function() { return _components_TeachingBubble_index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubble"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleBase", function() { return _components_TeachingBubble_index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContent", function() { return _components_TeachingBubble_index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContentBase", function() { return _components_TeachingBubble_index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleContentBase"]; });




/***/ }),

/***/ "./lib/Text.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Text_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Text/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _components_Text_index__WEBPACK_IMPORTED_MODULE_0__["Text"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextView", function() { return _components_Text_index__WEBPACK_IMPORTED_MODULE_0__["TextView"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyles", function() { return _components_Text_index__WEBPACK_IMPORTED_MODULE_0__["TextStyles"]; });




/***/ }),

/***/ "./lib/TextField.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_TextField_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/TextField/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return _components_TextField_index__WEBPACK_IMPORTED_MODULE_0__["TextField"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFieldBase", function() { return _components_TextField_index__WEBPACK_IMPORTED_MODULE_0__["TextFieldBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_CHAR", function() { return _components_TextField_index__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_MASK_CHAR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextField", function() { return _components_TextField_index__WEBPACK_IMPORTED_MODULE_0__["MaskedTextField"]; });




/***/ }),

/***/ "./lib/ThemeGenerator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ThemeGenerator/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeGenerator", function() { return _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__["ThemeGenerator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSlots", function() { return _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__["BaseSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricSlots", function() { return _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__["FabricSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SemanticColorSlots", function() { return _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__["SemanticColorSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "themeRulesStandardCreator", function() { return _components_ThemeGenerator_index__WEBPACK_IMPORTED_MODULE_0__["themeRulesStandardCreator"]; });




/***/ }),

/***/ "./lib/Toggle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Toggle_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Toggle/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return _components_Toggle_index__WEBPACK_IMPORTED_MODULE_0__["Toggle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToggleBase", function() { return _components_Toggle_index__WEBPACK_IMPORTED_MODULE_0__["ToggleBase"]; });




/***/ }),

/***/ "./lib/Tooltip.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Tooltip/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["Tooltip"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipBase", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["TooltipBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipDelay", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["TooltipDelay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHost", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["TooltipHost"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHostBase", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["TooltipHostBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipOverflowMode", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["TooltipOverflowMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _components_Tooltip_index__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });




/***/ }),

/***/ "./lib/Utilities.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/version.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["assign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filteredAssign", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["filteredAssign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapEnumByName", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["mapEnumByName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["shallowCompare"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["values"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setFocusVisibility", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setFocusVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSSR", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setSSR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Async", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Async"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScroll", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["AutoScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["BaseComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nullRender", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["nullRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DelayedRender", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["DelayedRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventGroup", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricPerformance", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["FabricPerformance"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GlobalSettings", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["GlobalSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCodes", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["KeyCodes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Rectangle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendFunction", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["appendFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAriaAttributeValues", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["mergeAriaAttributeValues"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["findIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["find"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createArray", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["createArray"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["toMatrix"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeIndex", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["removeIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replaceElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["replaceElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addElementAtIndex", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["addElementAtIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["flatten"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arraysEqual", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["arraysEqual"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asAsync", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["asAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNever", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["assertNever"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNamesFunction", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isControlled", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isControlled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "css", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["css"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizations", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Customizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizer", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Customizer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomizerContext", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["CustomizerContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customizable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["customizable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCustomizations", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["mergeCustomizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeSettings", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["mergeSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScopedSettings", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["mergeScopedSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getWindow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendComponent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["extendComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstFocusable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getFirstFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastFocusable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getLastFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstTabbable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getFirstTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastTabbable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getLastTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusFirstChild", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["focusFirstChild"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviousElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getPreviousElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getNextElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isElementVisible"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementTabbable", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isElementTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusZone", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isElementFocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusSubZone", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isElementFocusSubZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doesElementContainFocus", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["doesElementContainFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldWrapFocus", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["shouldWrapFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusAsync", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["focusAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusableByIndexPath", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getFocusableByIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElementIndexPath", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getElementIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getId"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["resetIds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistMethods", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["hoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unhoistMethods", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["unhoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistStatics", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["hoistStatics"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeComponentRef", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["initializeComponentRef"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeFocusRects", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["initializeFocusRects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInitials", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getInitials"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDirectionalKeyCode", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDirectionalKeyCode", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["addDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDistanceBetweenPoints", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getDistanceBetweenPoints"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fitContentToBounds", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["fitContentToBounds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePrecision", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["calculatePrecision"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["precisionRound"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMemoizeWeakMap", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setMemoizeWeakMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetMemoizations", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["resetMemoizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["memoize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeFunction", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["merge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIOS", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isIOS"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMac", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isMac"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasHorizontalOverflow", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["hasHorizontalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasVerticalOverflow", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["hasVerticalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasOverflow", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["hasOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementEvents", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["baseElementEvents"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["baseElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "htmlElementProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["htmlElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "labelProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["labelProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audioProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["audioProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "videoProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["videoProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["olProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "liProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["liProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "anchorProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["anchorProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["buttonProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inputProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["inputProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAreaProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["textAreaProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["selectProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "optionProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["optionProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tableProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["tableProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["trProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["thProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tdProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["tdProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colGroupProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["colGroupProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["colProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["formProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iframeProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["iframeProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imgProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["imgProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imageProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["imageProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "divProperties", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["divProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNativeProps", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getNativeProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getResourceUrl", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getResourceUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBaseUrl", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setBaseUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTLSafeKeyCode", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getRTLSafeKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeRequestAnimationFrame", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["safeRequestAnimationFrame"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeSetTimeout", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["safeSetTimeout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_IS_SCROLLABLE_ATTRIBUTE", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["DATA_IS_SCROLLABLE_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowScrollOnElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["allowScrollOnElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableBodyScroll", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["disableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableBodyScroll", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["enableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getScrollbarWidth"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["findScrollableParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["format"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["styled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIE11", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isIE11"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["elementContains"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["elementContainsAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["findElementRecursive"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getChildren"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getDocument"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getRect"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["isVirtualElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "on", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["on"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["portalContainsElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["raiseClick"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["DATA_PORTAL_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setPortalAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warn"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["setWarningCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warnConditionallyRequiredProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["resetControlledWarnings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warnControlledUsage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warnDeprecations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["warnMutuallyExclusive"]; });





/***/ }),

/***/ "./lib/common/DirectionalHint.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return DirectionalHint; });
var DirectionalHint = {
    /**
     * Appear above the target element, with the left edges of the callout and target aligning.
     */
    topLeftEdge: 0,
    /**
     * Appear above the target element, with the centers of the callout and target aligning.
     */
    topCenter: 1,
    /**
     * Appear above the target element, with the right edges of the callout and target aligning.
     */
    topRightEdge: 2,
    /**
     * Appear above the target element, aligning with the target element such that the callout tends toward the center of the screen.
     */
    topAutoEdge: 3,
    /**
     * Appear below the target element, with the left edges of the callout and target aligning.
     */
    bottomLeftEdge: 4,
    /**
     * Appear below the target element, with the centers of the callout and target aligning.
     */
    bottomCenter: 5,
    /**
     * Appear below the target element, with the right edges of the callout and target aligning.
     */
    bottomRightEdge: 6,
    /**
     * Appear below the target element, aligning with the target element such that the callout tends toward the center of the screen.
     */
    bottomAutoEdge: 7,
    /**
     * Appear to the left of the target element, with the top edges of the callout and target aligning.
     */
    leftTopEdge: 8,
    /**
     * Appear to the left of the target element, with the centers of the callout and target aligning.
     */
    leftCenter: 9,
    /**
     * Appear to the left of the target element, with the bottom edges of the callout and target aligning.
     */
    leftBottomEdge: 10,
    /**
     * Appear to the right of the target element, with the top edges of the callout and target aligning.
     */
    rightTopEdge: 11,
    /**
     * Appear to the right of the target element, with the centers of the callout and target aligning.
     */
    rightCenter: 12,
    /**
     * Appear to the right of the target element, with the bottom edges of the callout and target aligning.
     */
    rightBottomEdge: 13
};


/***/ }),

/***/ "./lib/components/ActivityItem/ActivityItem.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (styles, className, activityPersonas, isCompact) {
    return {
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem', className, styles.root, isCompact && styles.isCompactRoot),
        pulsingBeacon: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-pulsingBeacon', styles.pulsingBeacon),
        personaContainer: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-personaContainer', styles.personaContainer, isCompact && styles.isCompactPersonaContainer),
        activityPersona: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-activityPersona', styles.activityPersona, isCompact && styles.isCompactPersona, !isCompact && activityPersonas && activityPersonas.length === 2 && styles.doublePersona),
        activityTypeIcon: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-activityTypeIcon', styles.activityTypeIcon, isCompact && styles.isCompactIcon),
        activityContent: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-activityContent', styles.activityContent, isCompact && styles.isCompactContent),
        activityText: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-activityText', styles.activityText),
        commentText: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-commentText', styles.commentText),
        timeStamp: Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"])('ms-ActivityItem-timeStamp', styles.timeStamp, isCompact && styles.isCompactTimeStamp)
    };
});


/***/ }),

/***/ "./lib/components/ActivityItem/ActivityItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActivityItem", function() { return ActivityItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ActivityItem_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ActivityItem/ActivityItem.classNames.js");
/* harmony import */ var _ActivityItem_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ActivityItem/ActivityItem.styles.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Persona.js");





/**
 * {@docCategory ActivityItem}
 */
var ActivityItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ActivityItem, _super);
    function ActivityItem(props) {
        var _this = _super.call(this, props) || this;
        _this._onRenderIcon = function (props) {
            if (props.activityPersonas) {
                return _this._onRenderPersonaArray(props);
            }
            else {
                return _this.props.activityIcon;
            }
        };
        _this._onRenderActivityDescription = function (props) {
            var classNames = _this._getClassNames(props);
            var activityDescription = props.activityDescription || props.activityDescriptionText;
            if (activityDescription) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.activityText }, activityDescription);
            }
            return null;
        };
        _this._onRenderComments = function (props) {
            var classNames = _this._getClassNames(props);
            var comments = props.comments || props.commentText;
            if (!props.isCompact && comments) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.commentText }, comments);
            }
            return null;
        };
        _this._onRenderTimeStamp = function (props) {
            var classNames = _this._getClassNames(props);
            if (!props.isCompact && props.timeStamp) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.timeStamp }, props.timeStamp);
            }
            return null;
        };
        // If activityPersonas is an array of persona props, build the persona cluster element.
        _this._onRenderPersonaArray = function (props) {
            var classNames = _this._getClassNames(props);
            var personaElement = null;
            var activityPersonas = props.activityPersonas;
            if (activityPersonas[0].imageUrl || activityPersonas[0].imageInitials) {
                var personaList_1 = [];
                var showSize16Personas_1 = activityPersonas.length > 1 || props.isCompact;
                var personaLimit_1 = props.isCompact ? 3 : 4;
                var style_1 = undefined;
                if (props.isCompact) {
                    style_1 = {
                        display: 'inline-block',
                        width: '10px',
                        minWidth: '10px',
                        overflow: 'visible'
                    };
                }
                activityPersonas
                    .filter(function (person, index) { return index < personaLimit_1; })
                    .forEach(function (person, index) {
                    personaList_1.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_4__["PersonaCoin"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, person, { 
                        // tslint:disable-next-line:no-string-literal
                        key: person['key'] ? person['key'] : index, className: classNames.activityPersona, size: showSize16Personas_1 ? _Persona__WEBPACK_IMPORTED_MODULE_4__["PersonaSize"].size16 : _Persona__WEBPACK_IMPORTED_MODULE_4__["PersonaSize"].size32, style: style_1 })));
                });
                personaElement = react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.personaContainer }, personaList_1);
            }
            return personaElement;
        };
        return _this;
    }
    ActivityItem.prototype.render = function () {
        var _a = this.props, _b = _a.onRenderIcon, onRenderIcon = _b === void 0 ? this._onRenderIcon : _b, _c = _a.onRenderActivityDescription, onRenderActivityDescription = _c === void 0 ? this._onRenderActivityDescription : _c, _d = _a.onRenderComments, onRenderComments = _d === void 0 ? this._onRenderComments : _d, _e = _a.onRenderTimeStamp, onRenderTimeStamp = _e === void 0 ? this._onRenderTimeStamp : _e, animateBeaconSignal = _a.animateBeaconSignal, isCompact = _a.isCompact;
        var classNames = this._getClassNames(this.props);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, style: this.props.style },
            (this.props.activityPersonas || this.props.activityIcon || this.props.onRenderIcon) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.activityTypeIcon },
                animateBeaconSignal && isCompact && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.pulsingBeacon }),
                onRenderIcon(this.props))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.activityContent },
                onRenderActivityDescription(this.props, this._onRenderActivityDescription),
                onRenderComments(this.props, this._onRenderComments),
                onRenderTimeStamp(this.props, this._onRenderTimeStamp))));
    };
    ActivityItem.prototype._getClassNames = function (props) {
        return Object(_ActivityItem_classNames__WEBPACK_IMPORTED_MODULE_2__["getClassNames"])(Object(_ActivityItem_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(undefined, props.styles, props.animateBeaconSignal, props.beaconColorOne, props.beaconColorTwo, props.isCompact), props.className, props.activityPersonas, props.isCompact);
    };
    return ActivityItem;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/ActivityItem/ActivityItem.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var DEFAULT_PERSONA_SIZE = '32px';
var COMPACT_PERSONA_SIZE = '16px';
var DEFAULT_ICON_SIZE = '16px';
var COMPACT_ICON_SIZE = '13px';
var ANIMATION_INNER_DIMENSION = '4px';
var ANIMATION_OUTER_DIMENSION = '28px';
var ANIMATION_BORDER_WIDTH = '4px';
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, animateBeaconSignal, beaconColorOne, beaconColorTwo, isCompact) {
    var _a;
    if (theme === void 0) { theme = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getTheme"])(); }
    var continuousPulse = _Styling__WEBPACK_IMPORTED_MODULE_0__["PulsingBeaconAnimationStyles"].continuousPulseAnimationSingle(beaconColorOne ? beaconColorOne : theme.palette.themePrimary, beaconColorTwo ? beaconColorTwo : theme.palette.themeTertiary, ANIMATION_INNER_DIMENSION, ANIMATION_OUTER_DIMENSION, ANIMATION_BORDER_WIDTH);
    var fadeIn = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { opacity: 0 },
        to: { opacity: 1 }
    });
    var slideIn = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
        from: { transform: 'translateX(-10px)' },
        to: { transform: 'translateX(0)' }
    });
    var continuousPulseAnimation = {
        animationName: continuousPulse,
        animationIterationCount: '1',
        animationDuration: '.8s',
        zIndex: 1
    };
    var slideInAnimation = {
        animationName: slideIn,
        animationIterationCount: '1',
        animationDuration: '.5s'
    };
    var fadeInAnimation = {
        animationName: fadeIn,
        animationIterationCount: '1',
        animationDuration: '.5s'
    };
    var ActivityItemStyles = {
        root: [
            theme.fonts.small,
            {
                display: 'flex',
                justifyContent: 'flex-start',
                alignItems: 'flex-start',
                boxSizing: 'border-box',
                color: theme.palette.neutralSecondary
            },
            isCompact && animateBeaconSignal && fadeInAnimation
        ],
        pulsingBeacon: [
            {
                position: 'absolute',
                top: '50%',
                left: '50%',
                transform: 'translate(-50%, -50%)',
                width: '0px',
                height: '0px',
                borderRadius: '225px',
                borderStyle: 'solid',
                opacity: 0
            },
            isCompact && animateBeaconSignal && continuousPulseAnimation
        ],
        isCompactRoot: {
            alignItems: 'center'
        },
        personaContainer: {
            display: 'flex',
            flexWrap: 'wrap',
            minWidth: DEFAULT_PERSONA_SIZE,
            width: DEFAULT_PERSONA_SIZE,
            height: DEFAULT_PERSONA_SIZE
        },
        isCompactPersonaContainer: {
            display: 'inline-flex',
            flexWrap: 'nowrap',
            flexBasis: 'auto',
            height: COMPACT_PERSONA_SIZE,
            width: 'auto',
            minWidth: '0',
            paddingRight: '6px'
        },
        activityTypeIcon: {
            height: DEFAULT_PERSONA_SIZE,
            fontSize: DEFAULT_ICON_SIZE,
            lineHeight: DEFAULT_ICON_SIZE,
            marginTop: '3px'
        },
        isCompactIcon: {
            height: COMPACT_PERSONA_SIZE,
            minWidth: COMPACT_PERSONA_SIZE,
            fontSize: COMPACT_ICON_SIZE,
            lineHeight: COMPACT_ICON_SIZE,
            color: theme.palette.themePrimary,
            marginTop: '1px',
            position: 'relative',
            display: 'flex',
            justifyContent: 'center',
            alignItems: 'center',
            selectors: {
                '.ms-Persona-imageArea': {
                    margin: '-2px 0 0 -2px',
                    border: '2px solid' + theme.palette.white,
                    borderRadius: '50%',
                    selectors: (_a = {},
                        _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            border: 'none',
                            margin: '0'
                        },
                        _a)
                }
            }
        },
        activityPersona: {
            display: 'block'
        },
        doublePersona: {
            selectors: {
                ':first-child': {
                    alignSelf: 'flex-end'
                }
            }
        },
        isCompactPersona: {
            display: 'inline-block',
            width: '8px',
            minWidth: '8px',
            overflow: 'visible'
        },
        activityContent: [
            {
                padding: '0 8px'
            },
            isCompact && animateBeaconSignal && slideInAnimation
        ],
        activityText: {
            display: 'inline'
        },
        isCompactContent: {
            flex: '1',
            padding: '0 4px',
            whiteSpace: 'nowrap',
            textOverflow: 'ellipsis',
            overflowX: 'hidden'
        },
        commentText: {
            color: theme.palette.neutralPrimary
        },
        timeStamp: [
            theme.fonts.tiny,
            {
                fontWeight: 400,
                color: theme.palette.neutralSecondary
            }
        ],
        isCompactTimeStamp: {
            display: 'inline-block',
            paddingLeft: '0.3em',
            fontSize: '1em'
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(ActivityItemStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/ActivityItem/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ActivityItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ActivityItem/ActivityItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityItem", function() { return _ActivityItem__WEBPACK_IMPORTED_MODULE_0__["ActivityItem"]; });




/***/ }),

/***/ "./lib/components/Announced/Announced.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnnouncedBase", function() { return AnnouncedBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory Announced}
 */
var AnnouncedBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnnouncedBase, _super);
    function AnnouncedBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    AnnouncedBase.prototype.render = function () {
        var _a = this.props, message = _a.message, styles = _a.styles, _b = _a.as, Root = _b === void 0 ? 'div' : _b, className = _a.className;
        var classNames = getClassNames(styles, { className: className });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Root, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ role: "status", className: classNames.root }, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"], ['className'])),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Utilities__WEBPACK_IMPORTED_MODULE_2__["DelayedRender"], null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.screenReaderText }, message))));
    };
    AnnouncedBase.defaultProps = {
        'aria-live': 'polite'
    };
    return AnnouncedBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Announced/Announced.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Announced", function() { return Announced; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Announced_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Announced/Announced.base.js");
/* harmony import */ var _Announced_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Announced/Announced.styles.js");



var Announced = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Announced_base__WEBPACK_IMPORTED_MODULE_1__["AnnouncedBase"], _Announced_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"]);


/***/ }),

/***/ "./lib/components/Announced/Announced.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getStyles = function (props) {
    return {
        root: props.className,
        screenReaderText: _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]
    };
};


/***/ }),

/***/ "./lib/components/Announced/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Announced__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Announced/Announced.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Announced", function() { return _Announced__WEBPACK_IMPORTED_MODULE_0__["Announced"]; });

/* harmony import */ var _Announced_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Announced/Announced.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnouncedBase", function() { return _Announced_base__WEBPACK_IMPORTED_MODULE_1__["AnnouncedBase"]; });





/***/ }),

/***/ "./lib/components/Autofill/Autofill.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return Autofill; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return BaseAutoFill; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var SELECTION_FORWARD = 'forward';
var SELECTION_BACKWARD = 'backward';
/**
 * {@docCategory Autofill}
 */
var Autofill = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Autofill, _super);
    function Autofill(props) {
        var _this = _super.call(this, props) || this;
        _this._inputElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._autoFillEnabled = true;
        _this._isComposing = false;
        // Composition events are used when the character/text requires several keystrokes to be completed.
        // Some examples of this are mobile text input and langauges like Japanese or Arabic.
        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart
        _this._onCompositionStart = function (ev) {
            _this._isComposing = true;
            _this._autoFillEnabled = false;
        };
        // Composition events are used when the character/text requires several keystrokes to be completed.
        // Some examples of this are mobile text input and languages like Japanese or Arabic.
        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart
        _this._onCompositionUpdate = function () {
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isIE11"])()) {
                _this._updateValue(_this._getCurrentInputValue());
            }
        };
        // Composition events are used when the character/text requires several keystrokes to be completed.
        // Some examples of this are mobile text input and langauges like Japanese or Arabic.
        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart
        _this._onCompositionEnd = function (ev) {
            var inputValue = _this._getCurrentInputValue();
            _this._tryEnableAutofill(inputValue, _this.value, false, true);
            _this._isComposing = false;
            // Due to timing, this needs to be async, otherwise no text will be selected.
            _this._async.setTimeout(function () {
                // Call getCurrentInputValue here again since there can be a race condition where this value has changed during the async cal
                _this._updateValue(_this._getCurrentInputValue());
            }, 0);
        };
        _this._onClick = function () {
            if (_this._value && _this._value !== '' && _this._autoFillEnabled) {
                _this._autoFillEnabled = false;
            }
        };
        _this._onKeyDown = function (ev) {
            if (_this.props.onKeyDown) {
                _this.props.onKeyDown(ev);
            }
            // If the event is actively being composed, then don't alert autofill.
            // Right now typing does not have isComposing, once that has been fixed any should be removed.
            if (!ev.nativeEvent.isComposing) {
                switch (ev.which) {
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].backspace:
                        _this._autoFillEnabled = false;
                        break;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left:
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right:
                        if (_this._autoFillEnabled) {
                            _this._value = _this.state.displayValue;
                            _this._autoFillEnabled = false;
                        }
                        break;
                    default:
                        if (!_this._autoFillEnabled) {
                            if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {
                                _this._autoFillEnabled = true;
                            }
                        }
                        break;
                }
            }
        };
        _this._onInputChanged = function (ev) {
            var value = _this._getCurrentInputValue(ev);
            if (!_this._isComposing) {
                _this._tryEnableAutofill(value, _this._value, ev.nativeEvent.isComposing);
            }
            // If it is not IE11 and currently composing, update the value
            if (!(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isIE11"])() && _this._isComposing)) {
                _this._updateValue(value);
            }
        };
        _this._onChanged = function () {
            // Swallow this event, we don't care about it
            // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose
            return;
        };
        /**
         * Updates the current input value as well as getting a new display value.
         * @param newValue - The new value from the input
         */
        _this._updateValue = function (newValue) {
            // Only proceed if the value is nonempty and is different from the old value
            // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus
            if (!newValue && newValue === _this._value) {
                return;
            }
            _this._value = _this.props.onInputChange ? _this.props.onInputChange(newValue) : newValue;
            _this.setState({
                displayValue: _this._getDisplayValue(_this._value, _this.props.suggestedDisplayValue)
            }, function () { return _this._notifyInputChange(_this._value); });
        };
        _this._value = props.defaultVisibleValue || '';
        _this.state = {
            displayValue: props.defaultVisibleValue || ''
        };
        return _this;
    }
    Object.defineProperty(Autofill.prototype, "cursorLocation", {
        get: function () {
            if (this._inputElement.current) {
                var inputElement = this._inputElement.current;
                if (inputElement.selectionDirection !== SELECTION_FORWARD) {
                    return inputElement.selectionEnd;
                }
                else {
                    return inputElement.selectionStart;
                }
            }
            else {
                return -1;
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Autofill.prototype, "isValueSelected", {
        get: function () {
            return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Autofill.prototype, "value", {
        get: function () {
            return this._value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Autofill.prototype, "selectionStart", {
        get: function () {
            return this._inputElement.current ? this._inputElement.current.selectionStart : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Autofill.prototype, "selectionEnd", {
        get: function () {
            return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Autofill.prototype, "inputElement", {
        get: function () {
            return this._inputElement.current;
        },
        enumerable: true,
        configurable: true
    });
    // tslint:disable-next-line function-name
    Autofill.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        if (this.props.updateValueInWillReceiveProps) {
            var updatedInputValue = this.props.updateValueInWillReceiveProps();
            // Don't update if we have a null value or the value isn't changing
            // the value should still update if an empty string is passed in
            if (updatedInputValue !== null && updatedInputValue !== this._value) {
                this._value = updatedInputValue;
            }
        }
        var newDisplayValue = this._getDisplayValue(this._value, nextProps.suggestedDisplayValue);
        if (typeof newDisplayValue === 'string') {
            this.setState({ displayValue: newDisplayValue });
        }
    };
    Autofill.prototype.componentDidUpdate = function () {
        var value = this._value;
        var _a = this.props, suggestedDisplayValue = _a.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _a.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _a.preventValueSelection;
        var differenceIndex = 0;
        if (preventValueSelection) {
            return;
        }
        if (this._autoFillEnabled && value && suggestedDisplayValue && this._doesTextStartWith(suggestedDisplayValue, value)) {
            var shouldSelectFullRange = false;
            if (shouldSelectFullInputValueInComponentDidUpdate) {
                shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();
            }
            if (shouldSelectFullRange && this._inputElement.current) {
                this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);
            }
            else {
                while (differenceIndex < value.length &&
                    value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {
                    differenceIndex++;
                }
                if (differenceIndex > 0 && this._inputElement.current) {
                    this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);
                }
            }
        }
    };
    Autofill.prototype.render = function () {
        var displayValue = this.state.displayValue;
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["inputProperties"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { ref: this._inputElement, value: displayValue, autoCapitalize: 'off', autoComplete: 'off', onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, 
            // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.
            onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, "data-lpignore": true })));
    };
    Autofill.prototype.focus = function () {
        this._inputElement.current && this._inputElement.current.focus();
    };
    Autofill.prototype.clear = function () {
        this._autoFillEnabled = true;
        this._updateValue('');
        this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);
    };
    Autofill.prototype._getCurrentInputValue = function (ev) {
        if (ev && ev.target && ev.target.value) {
            return ev.target.value;
        }
        else if (this.inputElement && this.inputElement.value) {
            return this.inputElement.value;
        }
        else {
            return '';
        }
    };
    /**
     * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,
     * whether or not any text is selected, and only if the new input value is longer than the old input value.
     * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then
     * it should be completed.
     * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.
     * @param newValue - new input value
     * @param oldValue - old input value
     * @param isComposing - if true then the text is actively being composed and it has not completed.
     * @param isComposed - if the text is a composed text value.
     */
    Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {
        if (!isComposing &&
            newValue &&
            this._inputElement.current &&
            this._inputElement.current.selectionStart === newValue.length &&
            !this._autoFillEnabled &&
            (newValue.length > oldValue.length || isComposed)) {
            this._autoFillEnabled = true;
        }
    };
    Autofill.prototype._notifyInputChange = function (newValue) {
        if (this.props.onInputValueChange) {
            this.props.onInputValueChange(newValue);
        }
    };
    /**
     * Returns a string that should be used as the display value.
     * It evaluates this based on whether or not the suggested value starts with the input value
     * and whether or not autofill is enabled.
     * @param inputValue - the value that the input currently has.
     * @param suggestedDisplayValue - the possible full value
     */
    Autofill.prototype._getDisplayValue = function (inputValue, suggestedDisplayValue) {
        var displayValue = inputValue;
        if (suggestedDisplayValue && inputValue && this._doesTextStartWith(suggestedDisplayValue, displayValue) && this._autoFillEnabled) {
            displayValue = suggestedDisplayValue;
        }
        return displayValue;
    };
    Autofill.prototype._doesTextStartWith = function (text, startWith) {
        if (!text || !startWith) {
            return false;
        }
        return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;
    };
    Autofill.defaultProps = {
        enableAutofillOnKeyPress: [_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down, _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up]
    };
    return Autofill;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

/**
 *  @deprecated do not use.
 * {@docCategory Autofill}
 */
var BaseAutoFill = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseAutoFill, _super);
    function BaseAutoFill() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return BaseAutoFill;
}(Autofill));



/***/ }),

/***/ "./lib/components/Autofill/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Autofill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Autofill/Autofill.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _Autofill__WEBPACK_IMPORTED_MODULE_0__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _Autofill__WEBPACK_IMPORTED_MODULE_0__["BaseAutoFill"]; });




/***/ }),

/***/ "./lib/components/Breadcrumb/Breadcrumb.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbBase", function() { return BreadcrumbBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Link.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _ResizeGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/ResizeGroup.js");
/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/Tooltip.js");










var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var OVERFLOW_KEY = 'overflow';
var nullFunction = function () { return null; };
var nonActionableItemProps = {
    styles: function (props) {
        var theme = props.theme;
        return {
            root: {
                selectors: {
                    '&.is-disabled': {
                        color: theme.semanticColors.bodyText
                    }
                }
            }
        };
    }
};
/**
 * {@docCategory Breadcrumb}
 */
var BreadcrumbBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BreadcrumbBase, _super);
    function BreadcrumbBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onReduceData = function (data) {
            var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;
            var overflowIndex = data.props.overflowIndex;
            var movedItem = renderedItems[overflowIndex];
            renderedItems = renderedItems.slice();
            renderedItems.splice(overflowIndex, 1);
            renderedOverflowItems = renderedOverflowItems.concat([movedItem]);
            if (movedItem !== undefined) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, data, { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });
            }
        };
        _this._onRenderBreadcrumb = function (data) {
            var _a = data.props, ariaLabel = _a.ariaLabel, _b = _a.dividerAs, DividerType = _b === void 0 ? _Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"] : _b, _c = _a.onRenderItem, onRenderItem = _c === void 0 ? _this._onRenderItem : _c, overflowAriaLabel = _a.overflowAriaLabel, overflowIndex = _a.overflowIndex, onRenderOverflowIcon = _a.onRenderOverflowIcon;
            var renderedOverflowItems = data.renderedOverflowItems, renderedItems = data.renderedItems;
            var contextualItems = renderedOverflowItems.map(function (item) {
                var isActionable = !!(item.onClick || item.href);
                return {
                    name: item.text,
                    key: item.key,
                    onClick: item.onClick ? _this._onBreadcrumbClicked.bind(_this, item) : null,
                    href: item.href,
                    disabled: !isActionable,
                    itemProps: isActionable ? undefined : nonActionableItemProps
                };
            });
            // Find index of last rendered item so the divider icon
            // knows not to render on that item
            var lastItemIndex = renderedItems.length - 1;
            var hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0;
            var itemElements = renderedItems.map(function (item, index) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { className: _this._classNames.listItem, key: item.key || String(index) },
                onRenderItem(item, _this._onRenderItem),
                (index !== lastItemIndex || (hasOverflowItems && index === overflowIndex - 1)) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](DividerType, { className: _this._classNames.chevron, iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? 'ChevronLeft' : 'ChevronRight', item: item })))); });
            if (hasOverflowItems) {
                var iconProps = !onRenderOverflowIcon ? { iconName: 'More' } : {};
                var onRenderMenuIcon = onRenderOverflowIcon ? onRenderOverflowIcon : nullFunction;
                itemElements.splice(overflowIndex, 0, react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { className: _this._classNames.overflow, key: OVERFLOW_KEY },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_6__["IconButton"], { className: _this._classNames.overflowButton, iconProps: iconProps, role: "button", "aria-haspopup": "true", ariaLabel: overflowAriaLabel, onRenderMenuIcon: onRenderMenuIcon, menuProps: {
                            items: contextualItems,
                            directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_7__["DirectionalHint"].bottomLeftEdge
                        } }),
                    overflowIndex !== lastItemIndex + 1 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](DividerType, { className: _this._classNames.chevron, iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? 'ChevronLeft' : 'ChevronRight', item: renderedOverflowItems[renderedOverflowItems.length - 1] }))));
            }
            var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(_this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["htmlElementProperties"], ['className']);
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: _this._classNames.root, role: "navigation", "aria-label": ariaLabel }, nativeProps),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: _this._focusZone, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZoneDirection"].horizontal }, _this.props.focusZoneProps),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ol", { className: _this._classNames.list }, itemElements))));
        };
        _this._onRenderItem = function (item) {
            if (item.onClick || item.href) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Link__WEBPACK_IMPORTED_MODULE_4__["Link"], { as: item.as, className: _this._classNames.itemLink, href: item.href, "aria-current": item.isCurrentItem ? 'page' : undefined, onClick: _this._onBreadcrumbClicked.bind(_this, item) },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Tooltip__WEBPACK_IMPORTED_MODULE_9__["TooltipHost"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ content: item.text, overflowMode: _Tooltip__WEBPACK_IMPORTED_MODULE_9__["TooltipOverflowMode"].Parent }, _this.props.tooltipHostProps), item.text)));
            }
            else {
                var Tag = item.as || 'span';
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Tag, { className: _this._classNames.item },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Tooltip__WEBPACK_IMPORTED_MODULE_9__["TooltipHost"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ content: item.text, overflowMode: _Tooltip__WEBPACK_IMPORTED_MODULE_9__["TooltipOverflowMode"].Parent }, _this.props.tooltipHostProps), item.text)));
            }
        };
        _this._onBreadcrumbClicked = function (item, ev) {
            if (item.onClick) {
                item.onClick(ev, item);
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this._validateProps(props);
        return _this;
    }
    /**
     * Sets focus to the first breadcrumb link.
     */
    BreadcrumbBase.prototype.focus = function () {
        if (this._focusZone.current) {
            this._focusZone.current.focus();
        }
    };
    BreadcrumbBase.prototype.render = function () {
        this._validateProps(this.props);
        var _a = this.props, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems, items = _a.items, className = _a.className, theme = _a.theme, styles = _a.styles;
        var renderedItems = items.slice();
        var renderedOverflowItems = renderedItems.splice(overflowIndex, renderedItems.length - maxDisplayedItems);
        var breadcrumbData = {
            props: this.props,
            renderedItems: renderedItems,
            renderedOverflowItems: renderedOverflowItems
        };
        this._classNames = getClassNames(styles, {
            className: className,
            theme: theme
        });
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ResizeGroup__WEBPACK_IMPORTED_MODULE_8__["ResizeGroup"], { onRenderData: this._onRenderBreadcrumb, onReduceData: onReduceData, data: breadcrumbData });
    };
    /**
     * Validate incoming props
     * @param props - Props to validate
     */
    BreadcrumbBase.prototype._validateProps = function (props) {
        var maxDisplayedItems = props.maxDisplayedItems, overflowIndex = props.overflowIndex, items = props.items;
        if (overflowIndex < 0 ||
            (maxDisplayedItems > 1 && overflowIndex > maxDisplayedItems - 1) ||
            (items.length > 0 && overflowIndex > items.length - 1)) {
            throw new Error('Breadcrumb: overflowIndex out of range');
        }
    };
    BreadcrumbBase.defaultProps = {
        items: [],
        maxDisplayedItems: 999,
        overflowIndex: 0
    };
    return BreadcrumbBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Breadcrumb/Breadcrumb.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return Breadcrumb; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Breadcrumb_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Breadcrumb/Breadcrumb.base.js");
/* harmony import */ var _Breadcrumb_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Breadcrumb/Breadcrumb.styles.js");



var Breadcrumb = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Breadcrumb_base__WEBPACK_IMPORTED_MODULE_1__["BreadcrumbBase"], _Breadcrumb_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'Breadcrumb' });


/***/ }),

/***/ "./lib/components/Breadcrumb/Breadcrumb.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var GlobalClassNames = {
    root: 'ms-Breadcrumb',
    list: 'ms-Breadcrumb-list',
    listItem: 'ms-Breadcrumb-listItem',
    chevron: 'ms-Breadcrumb-chevron',
    overflow: 'ms-Breadcrumb-overflow',
    overflowButton: 'ms-Breadcrumb-overflowButton',
    itemLink: 'ms-Breadcrumb-itemLink',
    item: 'ms-Breadcrumb-item'
};
var SingleLineTextStyle = {
    whiteSpace: 'nowrap',
    textOverflow: 'ellipsis',
    overflow: 'hidden'
};
var overflowButtonFontSize = 16;
var chevronSmallFontSize = 8;
var itemLineHeight = 36;
var itemFontSize = 18;
var MinimumScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"])(0, _Styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxSmall"]);
var MediumScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"])(_Styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMinMedium"], _Styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxMedium"]);
var getStyles = function (props) {
    var _a, _b, _c, _d;
    var className = props.className, theme = props.theme;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(GlobalClassNames, theme);
    // Tokens
    var itemBackgroundHoveredColor = semanticColors.menuItemBackgroundHovered;
    var itemBackgroundPressedColor = semanticColors.menuItemBackgroundPressed;
    var itemTextColor = palette.neutralSecondary;
    var itemTextFontWeight = _Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].regular;
    var itemTextHoveredOrPressedColor = palette.neutralPrimary;
    var itemLastChildTextColor = palette.neutralPrimary;
    var itemLastChildTextFontWeight = _Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semibold;
    var chevronButtonColor = palette.neutralSecondary;
    var overflowButtonColor = palette.neutralSecondary;
    var lastChildItemStyles = {
        fontWeight: itemLastChildTextFontWeight,
        color: itemLastChildTextColor
    };
    var itemStateSelectors = {
        ':hover': {
            color: itemTextHoveredOrPressedColor,
            backgroundColor: itemBackgroundHoveredColor,
            cursor: 'pointer',
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    color: 'Highlight'
                },
                _a)
        },
        ':active': {
            backgroundColor: itemBackgroundPressedColor,
            color: itemTextHoveredOrPressedColor
        },
        '&:active:hover': {
            color: itemTextHoveredOrPressedColor,
            backgroundColor: itemBackgroundPressedColor
        },
        '&:active, &:hover, &:active:hover': {
            textDecoration: 'none'
        }
    };
    var commonItemStyles = {
        color: itemTextColor,
        padding: '0 8px',
        lineHeight: itemLineHeight,
        fontSize: itemFontSize,
        fontWeight: itemTextFontWeight
    };
    return {
        root: [
            classNames.root,
            fonts.medium,
            {
                margin: '11px 0 1px'
            },
            className
        ],
        list: [
            classNames.list,
            {
                whiteSpace: 'nowrap',
                padding: 0,
                margin: 0,
                display: 'flex',
                alignItems: 'stretch'
            }
        ],
        listItem: [
            classNames.listItem,
            {
                listStyleType: 'none',
                margin: '0',
                padding: '0',
                display: 'flex',
                position: 'relative',
                alignItems: 'center',
                selectors: {
                    '&:last-child .ms-Breadcrumb-itemLink': lastChildItemStyles,
                    '&:last-child .ms-Breadcrumb-item': lastChildItemStyles
                }
            }
        ],
        chevron: [
            classNames.chevron,
            {
                color: chevronButtonColor,
                fontSize: fonts.small.fontSize,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        color: 'WindowText',
                        MsHighContrastAdjust: 'none'
                    },
                    _b[MediumScreenSelector] = {
                        fontSize: chevronSmallFontSize
                    },
                    _b[MinimumScreenSelector] = {
                        fontSize: chevronSmallFontSize
                    },
                    _b)
            }
        ],
        overflow: [
            classNames.overflow,
            {
                position: 'relative',
                display: 'flex',
                alignItems: 'center'
            }
        ],
        overflowButton: [
            classNames.overflowButton,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme),
            SingleLineTextStyle,
            {
                fontSize: overflowButtonFontSize,
                color: overflowButtonColor,
                height: '100%',
                cursor: 'pointer',
                selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, itemStateSelectors, (_c = {}, _c[MinimumScreenSelector] = {
                    padding: '4px 6px'
                }, _c[MediumScreenSelector] = {
                    fontSize: fonts.mediumPlus.fontSize
                }, _c))
            }
        ],
        itemLink: [
            classNames.itemLink,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme),
            SingleLineTextStyle,
            tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, commonItemStyles, { selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_d = { ':focus': {
                            color: palette.neutralDark
                        } }, _d["." + _Utilities__WEBPACK_IMPORTED_MODULE_2__["IsFocusVisibleClassName"] + " &:focus"] = {
                    outline: "none"
                }, _d), itemStateSelectors) })
        ],
        item: [
            classNames.item,
            tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, commonItemStyles, { selectors: {
                    ':hover': {
                        cursor: 'default'
                    }
                } })
        ]
    };
};


/***/ }),

/***/ "./lib/components/Breadcrumb/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Breadcrumb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Breadcrumb/Breadcrumb.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _Breadcrumb__WEBPACK_IMPORTED_MODULE_0__["Breadcrumb"]; });

/* harmony import */ var _Breadcrumb_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Breadcrumb/Breadcrumb.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbBase", function() { return _Breadcrumb_base__WEBPACK_IMPORTED_MODULE_1__["BreadcrumbBase"]; });





/***/ }),

/***/ "./lib/components/Button/ActionButton/ActionButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionButton", function() { return ActionButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ActionButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/ActionButton/ActionButton.styles.js");





/**
 * {@docCategory Button}
 */
var ActionButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ActionButton, _super);
    function ActionButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    ActionButton.prototype.render = function () {
        var _a = this.props, styles = _a.styles, theme = _a.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_BaseButton__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { variantClassName: "ms-Button--action ms-Button--command", styles: Object(_ActionButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles), onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] })));
    };
    ActionButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('ActionButton', ['theme', 'styles'], true)
    ], ActionButton);
    return ActionButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/ActionButton/ActionButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");



var DEFAULT_BUTTON_HEIGHT = '40px';
var DEFAULT_PADDING = '0 4px';
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles) {
    var _a;
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var actionButtonStyles = {
        root: {
            padding: DEFAULT_PADDING,
            height: DEFAULT_BUTTON_HEIGHT,
            color: theme.palette.neutralPrimary,
            backgroundColor: 'transparent',
            border: '1px solid transparent'
        },
        rootHovered: {
            color: theme.palette.themePrimary,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight',
                    color: 'Highlight'
                },
                _a)
        },
        iconHovered: {
            color: theme.palette.themePrimary
        },
        rootPressed: {
            color: theme.palette.black
        },
        rootExpanded: {
            color: theme.palette.themePrimary
        },
        iconPressed: {
            color: theme.palette.themeDarker
        },
        rootDisabled: {
            color: theme.palette.neutralTertiary,
            backgroundColor: 'transparent',
            borderColor: 'transparent'
        },
        rootChecked: {
            color: theme.palette.black
        },
        iconChecked: {
            color: theme.palette.themeDarker
        },
        flexContainer: {
            justifyContent: 'flex-start'
        },
        icon: {
            color: theme.palette.themeDarkAlt
        },
        iconDisabled: {
            color: 'inherit'
        },
        menuIcon: {
            color: theme.palette.neutralSecondary
        },
        textContainer: {
            flexGrow: 0
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, actionButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/BaseButton.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGlobalClassNames", function() { return ButtonGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBaseButtonClassNames", function() { return getBaseButtonClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");



var ButtonGlobalClassNames = {
    msButton: 'ms-Button',
    msButtonHasMenu: 'ms-Button--hasMenu',
    msButtonIcon: 'ms-Button-icon',
    msButtonMenuIcon: 'ms-Button-menuIcon',
    msButtonLabel: 'ms-Button-label',
    msButtonDescription: 'ms-Button-description',
    msButtonScreenReaderText: 'ms-Button-screenReaderText',
    msButtonFlexContainer: 'ms-Button-flexContainer',
    msButtonTextContainer: 'ms-Button-textContainer'
};
var getBaseButtonClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {
    var _a, _b;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(ButtonGlobalClassNames, theme || {});
    var isExpanded = expanded && !isSplit;
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyleSets"])({
        root: [
            classNames.msButton,
            styles.root,
            variantClassName,
            checked && ['is-checked', styles.rootChecked],
            isExpanded && [
                'is-expanded',
                styles.rootExpanded,
                {
                    selectors: (_a = {},
                        _a[":hover ." + classNames.msButtonIcon] = styles.iconExpandedHovered,
                        // menuIcon falls back to rootExpandedHovered to support original behavior
                        _a[":hover ." + classNames.msButtonMenuIcon] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,
                        _a[':hover'] = styles.rootExpandedHovered,
                        _a)
                }
            ],
            hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],
            disabled && ['is-disabled', styles.rootDisabled],
            !disabled &&
                !isExpanded &&
                !checked && {
                selectors: (_b = {
                        ':hover': styles.rootHovered
                    },
                    _b[":hover ." + classNames.msButtonLabel] = styles.labelHovered,
                    _b[":hover ." + classNames.msButtonIcon] = styles.iconHovered,
                    _b[":hover ." + classNames.msButtonDescription] = styles.descriptionHovered,
                    _b[":hover ." + classNames.msButtonMenuIcon] = styles.menuIconHovered,
                    _b[':focus'] = styles.rootFocused,
                    _b[':active'] = styles.rootPressed,
                    _b[":active ." + classNames.msButtonIcon] = styles.iconPressed,
                    _b[":active ." + classNames.msButtonDescription] = styles.descriptionPressed,
                    _b[":active ." + classNames.msButtonMenuIcon] = styles.menuIconPressed,
                    _b)
            },
            disabled && checked && [styles.rootCheckedDisabled],
            !disabled &&
                checked && {
                selectors: {
                    ':hover': styles.rootCheckedHovered,
                    ':active': styles.rootCheckedPressed
                }
            },
            className
        ],
        flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],
        textContainer: [classNames.msButtonTextContainer, styles.textContainer],
        icon: [
            classNames.msButtonIcon,
            iconClassName,
            styles.icon,
            isExpanded && styles.iconExpanded,
            checked && styles.iconChecked,
            disabled && styles.iconDisabled
        ],
        label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],
        menuIcon: [
            classNames.msButtonMenuIcon,
            menuIconClassName,
            styles.menuIcon,
            checked && styles.menuIconChecked,
            disabled && !isSplit && styles.menuIconDisabled,
            !disabled &&
                !isExpanded &&
                !checked && {
                selectors: {
                    ':hover': styles.menuIconHovered,
                    ':active': styles.menuIconPressed
                }
            },
            isExpanded && ['is-expanded', styles.menuIconExpanded]
        ],
        description: [
            classNames.msButtonDescription,
            styles.description,
            checked && styles.descriptionChecked,
            disabled && styles.descriptionDisabled
        ],
        screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText]
    });
});


/***/ }),

/***/ "./lib/components/Button/BaseButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseButton", function() { return BaseButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _ContextualMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/ContextualMenu.js");
/* harmony import */ var _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Button/BaseButton.classNames.js");
/* harmony import */ var _SplitButton_SplitButton_classNames__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Button/SplitButton/SplitButton.classNames.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/KeytipData.js");









var TouchIdleDelay = 500; /* ms */
/**
 * {@docCategory Button}
 */
var BaseButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseButton, _super);
    function BaseButton(props, rootClassName) {
        var _this = _super.call(this, props) || this;
        _this._buttonElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._splitButtonContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._renderedVisibleMenu = false;
        _this._getMemoizedMenuButtonKeytipProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (keytipProps) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps, { hasMenu: true });
        });
        _this._onRenderIcon = function (buttonProps, defaultRender) {
            var iconProps = _this.props.iconProps;
            if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {
                var className = iconProps.className, imageProps = iconProps.imageProps, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](iconProps, ["className", "imageProps"]);
                // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon do not have such prop.
                if (iconProps.styles) {
                    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.icon, className), imageProps: imageProps }, rest));
                }
                if (iconProps.iconName) {
                    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["FontIcon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.icon, className) }, rest));
                }
                if (imageProps) {
                    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["ImageIcon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.icon, className), imageProps: imageProps }, rest));
                }
            }
            return null;
        };
        _this._onRenderTextContents = function () {
            var _a = _this.props, text = _a.text, children = _a.children, _b = _a.secondaryText, secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;
            if (text || typeof children === 'string' || secondaryText) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.textContainer },
                    onRenderText(_this.props, _this._onRenderText),
                    onRenderDescription(_this.props, _this._onRenderDescription)));
            }
            return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];
        };
        _this._onRenderText = function () {
            var text = _this.props.text;
            var children = _this.props.children;
            // For backwards compat, we should continue to take in the text content from children.
            if (text === undefined && typeof children === 'string') {
                text = children;
            }
            if (_this._hasText()) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));
            }
            return null;
        };
        _this._onRenderChildren = function () {
            var children = _this.props.children;
            // If children is just a string, either it or the text will be rendered via onRenderLabel
            // If children is another component, it will be rendered after text
            if (typeof children === 'string') {
                return null;
            }
            return children;
        };
        _this._onRenderDescription = function (props) {
            var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;
            // ms-Button-description is only shown when the button type is compound.
            // In other cases it will not be displayed.
            return secondaryText ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;
        };
        _this._onRenderAriaDescription = function () {
            var ariaDescription = _this.props.ariaDescription;
            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,
            // otherwise it will be assigned to descriptionSpan.
            return ariaDescription ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;
        };
        _this._onRenderMenuIcon = function (props) {
            var menuIconProps = _this.props.menuIconProps;
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["FontIcon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: "ChevronDown" }, menuIconProps, { className: _this._classNames.menuIcon }));
        };
        _this._onRenderMenu = function (menuProps) {
            var persistMenu = _this.props.persistMenu;
            var menuHidden = _this.state.menuHidden;
            var MenuType = _this.props.menuAs || _ContextualMenu__WEBPACK_IMPORTED_MODULE_5__["ContextualMenu"];
            // the accessible menu label (accessible name) has a relationship to the button.
            // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,
            // AND the button has text, we'll set the menu aria-labelledBy to the text element id.
            if (!menuProps.ariaLabel && !menuProps.labelElementId && _this._hasText()) {
                menuProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, menuProps, { labelElementId: _this._labelId });
            }
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](MenuType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ id: _this._labelId + '-menu', directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomLeftEdge }, menuProps, { shouldFocusOnContainer: _this._menuShouldFocusOnContainer, shouldFocusOnMount: _this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BaseButton-menuhost', menuProps.className), target: _this._isSplitButton ? _this._splitButtonContainer.current : _this._buttonElement.current, onDismiss: _this._onDismissMenu })));
        };
        _this._onDismissMenu = function (ev) {
            var menuProps = _this.props.menuProps;
            if (menuProps && menuProps.onDismiss) {
                menuProps.onDismiss(ev);
            }
            if (!ev || !ev.defaultPrevented) {
                _this._dismissMenu();
            }
        };
        _this._dismissMenu = function () {
            _this._menuShouldFocusOnMount = undefined;
            _this._menuShouldFocusOnContainer = undefined;
            _this.setState({ menuHidden: true });
        };
        _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {
            if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }
            if (_this.props.menuProps) {
                _this._menuShouldFocusOnContainer = shouldFocusOnContainer;
                _this._menuShouldFocusOnMount = shouldFocusOnMount;
                _this._renderedVisibleMenu = true;
                _this.setState({ menuHidden: false });
            }
        };
        _this._onToggleMenu = function (shouldFocusOnContainer) {
            var shouldFocusOnMount = true;
            if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {
                shouldFocusOnMount = false;
            }
            _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();
        };
        _this._onSplitContainerFocusCapture = function (ev) {
            var container = _this._splitButtonContainer.current;
            // If the target is coming from the portal we do not need to set focus on the container.
            if (!container || (ev.target && Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["portalContainsElement"])(ev.target, container))) {
                return;
            }
            // We should never be able to focus the individual buttons in a split button. Focus
            // should always remain on the container.
            container.focus();
        };
        _this._onSplitButtonPrimaryClick = function (ev) {
            if (!_this.state.menuHidden) {
                _this._dismissMenu();
            }
            if (!_this._processingTouch && _this.props.onClick) {
                _this.props.onClick(ev);
            }
            else if (_this._processingTouch) {
                _this._onMenuClick(ev);
            }
        };
        _this._onKeyDown = function (ev) {
            // explicity cancelling event so click won't fire after this
            if (_this.props.disabled && (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space)) {
                ev.preventDefault();
                ev.stopPropagation();
            }
            else if (!_this.props.disabled) {
                if (_this.props.menuProps) {
                    _this._onMenuKeyDown(ev);
                }
                else if (_this.props.onKeyDown !== undefined) {
                    _this.props.onKeyDown(ev); // not cancelling event because it's not disabled
                }
            }
        };
        _this._onKeyUp = function (ev) {
            if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {
                _this.props.onKeyUp(ev); // not cancelling event because it's not disabled
            }
        };
        _this._onKeyPress = function (ev) {
            if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {
                _this.props.onKeyPress(ev); // not cancelling event because it's not disabled
            }
        };
        _this._onMouseUp = function (ev) {
            if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {
                _this.props.onMouseUp(ev); // not cancelling event because it's not disabled
            }
        };
        _this._onMouseDown = function (ev) {
            if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {
                _this.props.onMouseDown(ev); // not cancelling event because it's not disabled
            }
        };
        _this._onClick = function (ev) {
            if (!_this.props.disabled) {
                if (_this.props.menuProps) {
                    _this._onMenuClick(ev);
                }
                else if (_this.props.onClick !== undefined) {
                    _this.props.onClick(ev); // not cancelling event because it's not disabled
                }
            }
        };
        _this._onSplitButtonContainerKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                if (_this._buttonElement.current) {
                    _this._buttonElement.current.click();
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
            else {
                _this._onMenuKeyDown(ev);
            }
        };
        _this._onMenuKeyDown = function (ev) {
            if (_this.props.disabled) {
                return;
            }
            if (_this.props.onKeyDown) {
                _this.props.onKeyDown(ev);
            }
            var isUp = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up;
            var isDown = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down;
            if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {
                var onMenuClick = _this.props.onMenuClick;
                if (onMenuClick) {
                    onMenuClick(ev, _this);
                }
                _this._onToggleMenu(false);
                ev.preventDefault();
                ev.stopPropagation();
            }
            if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {
                // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items
                // We need to re-render the menu with shouldFocusOnMount as true.
                if (!_this.state.menuHidden && _this.props.menuProps) {
                    var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined ? _this._menuShouldFocusOnMount : _this.props.menuProps.shouldFocusOnMount;
                    if (!currentShouldFocusOnMount) {
                        ev.preventDefault();
                        ev.stopPropagation();
                        _this._menuShouldFocusOnMount = true;
                        _this.forceUpdate();
                    }
                }
            }
        };
        _this._onTouchStart = function () {
            if (_this._isSplitButton && _this._splitButtonContainer.current && !('onpointerdown' in _this._splitButtonContainer.current)) {
                _this._handleTouchAndPointerEvent();
            }
        };
        _this._onMenuClick = function (ev) {
            var onMenuClick = _this.props.onMenuClick;
            if (onMenuClick) {
                onMenuClick(ev, _this);
            }
            if (!ev.defaultPrevented) {
                // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing
                // "Enter" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates
                // between a real click event and a keypress event (detail should be the number of mouse clicks).
                // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).
                // So we also check the pointerType property, which both Edge and IE set to "mouse" for real clicks
                // and "" for pressing "Enter" with Narrator on.
                var shouldFocusOnContainer = ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse';
                _this._onToggleMenu(shouldFocusOnContainer);
                ev.preventDefault();
                ev.stopPropagation();
            }
        };
        _this._warnConditionallyRequiredProps(['menuProps', 'onClick'], 'split', _this.props.split);
        _this._warnDeprecations({
            rootProps: undefined,
            description: 'secondaryText',
            toggled: 'checked'
        });
        _this._labelId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        _this._descriptionId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        _this._ariaDescriptionId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        _this.state = {
            menuHidden: true
        };
        return _this;
    }
    Object.defineProperty(BaseButton.prototype, "_isSplitButton", {
        get: function () {
            return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;
        },
        enumerable: true,
        configurable: true
    });
    BaseButton.prototype.render = function () {
        var _a = this.props, ariaDescription = _a.ariaDescription, ariaLabel = _a.ariaLabel, ariaHidden = _a.ariaHidden, className = _a.className, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, primaryDisabled = _a.primaryDisabled, _b = _a.secondaryText, secondaryText = _b === void 0 ? this.props.description : _b, href = _a.href, iconProps = _a.iconProps, menuIconProps = _a.menuIconProps, styles = _a.styles, checked = _a.checked, variantClassName = _a.variantClassName, theme = _a.theme, toggle = _a.toggle, getClassNames = _a.getClassNames;
        var menuHidden = this.state.menuHidden;
        // Button is disabled if the whole button (in case of splitbutton is disabled) or if the primary action is disabled
        var isPrimaryButtonDisabled = disabled || primaryDisabled;
        this._classNames = getClassNames
            ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)
            : Object(_BaseButton_classNames__WEBPACK_IMPORTED_MODULE_6__["getBaseButtonClassNames"])(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);
        var _c = this, _ariaDescriptionId = _c._ariaDescriptionId, _labelId = _c._labelId, _descriptionId = _c._descriptionId;
        // Anchor tag cannot be disabled hence in disabled state rendering
        // anchor button as normal button
        var renderAsAnchor = !isPrimaryButtonDisabled && !!href;
        var tag = renderAsAnchor ? 'a' : 'button';
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assign"])(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? _Utilities__WEBPACK_IMPORTED_MODULE_2__["anchorProperties"] : _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"], [
            'disabled' // let disabled buttons be focused and styled as disabled.
        ]);
        // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props
        var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];
        // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of aria-describedby
        // otherwise default to undefined so property does not appear in output.
        var ariaDescribedBy = undefined;
        if (ariaDescription) {
            ariaDescribedBy = _ariaDescriptionId;
        }
        else if (secondaryText && this.props.onRenderDescription !== _Utilities__WEBPACK_IMPORTED_MODULE_2__["nullRender"]) {
            // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy
            // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy
            ariaDescribedBy = _descriptionId;
        }
        else if (nativeProps['aria-describedby']) {
            ariaDescribedBy = nativeProps['aria-describedby'];
        }
        // If an explicit ariaLabel is given, use that as the label and we're done.
        // If an explicit aria-labelledby is given, use that and we're done.
        // If any kind of description is given (which will end up as an aria-describedby attribute),
        // set the labelledby element. Otherwise, the button is labeled implicitly by the descendent
        // text on the button (if it exists). Never set both aria-label and aria-labelledby.
        var ariaLabelledBy = undefined;
        if (!resolvedAriaLabel) {
            if (nativeProps['aria-labelledby']) {
                ariaLabelledBy = nativeProps['aria-labelledby'];
            }
            else if (ariaDescribedBy) {
                ariaLabelledBy = this._hasText() ? _labelId : undefined;
            }
        }
        var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton ? false : true;
        var buttonProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assign"])(nativeProps, {
            className: this._classNames.root,
            ref: this._buttonElement,
            disabled: isPrimaryButtonDisabled && !allowDisabledFocus,
            onKeyDown: this._onKeyDown,
            onKeyPress: this._onKeyPress,
            onKeyUp: this._onKeyUp,
            onMouseDown: this._onMouseDown,
            onMouseUp: this._onMouseUp,
            onClick: this._onClick,
            'aria-label': resolvedAriaLabel,
            'aria-labelledby': ariaLabelledBy,
            'aria-describedby': ariaDescribedBy,
            'aria-disabled': isPrimaryButtonDisabled,
            'data-is-focusable': dataIsFocusable,
            'aria-pressed': toggle ? !!checked : undefined // aria-pressed attribute should only be present for toggle buttons
        });
        if (ariaHidden) {
            buttonProps['aria-hidden'] = true;
        }
        if (this._isSplitButton) {
            return this._onRenderSplitButtonContent(tag, buttonProps);
        }
        else if (this.props.menuProps) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assign"])(buttonProps, {
                'aria-expanded': !menuHidden,
                'aria-owns': !menuHidden ? this._labelId + '-menu' : null,
                'aria-haspopup': true
            });
        }
        return this._onRenderContent(tag, buttonProps);
    };
    BaseButton.prototype.componentDidMount = function () {
        // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the primary action.
        // This gives more hit target space for touch environments. We're setting the onpointerdown here, because React
        // does not support Pointer events yet.
        if (this._isSplitButton && this._splitButtonContainer.current && 'onpointerdown' in this._splitButtonContainer.current) {
            this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);
        }
    };
    BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {
        // If Button's menu was closed, run onAfterMenuDismiss.
        if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {
            this.props.onAfterMenuDismiss();
        }
    };
    BaseButton.prototype.focus = function () {
        if (this._isSplitButton && this._splitButtonContainer.current) {
            this._splitButtonContainer.current.focus();
        }
        else if (this._buttonElement.current) {
            this._buttonElement.current.focus();
        }
    };
    BaseButton.prototype.dismissMenu = function () {
        this._dismissMenu();
    };
    BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {
        this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);
    };
    BaseButton.prototype._onRenderContent = function (tag, buttonProps) {
        var _this = this;
        var props = this.props;
        var Tag = tag;
        var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, _d = props.onRenderMenu, onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;
        var keytipProps = props.keytipProps;
        if (keytipProps && menuProps) {
            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);
        }
        var Button = function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Tag, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, buttonProps, keytipAttributes),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.flexContainer, "data-automationid": "splitbuttonprimary" },
                onRenderIcon(props, _this._onRenderIcon),
                _this._onRenderTextContents(),
                onRenderAriaDescription(props, _this._onRenderAriaDescription),
                onRenderChildren(props, _this._onRenderChildren),
                !_this._isSplitButton &&
                    (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&
                    onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),
                menuProps && !menuProps.doNotLayer && _this._shouldRenderMenu() && onRenderMenu(menuProps, _this._onRenderMenu)))); };
        var Content = keytipProps ? (
        // If we're making a split button, we won't put the keytip here
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_8__["KeytipData"], { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());
        if (menuProps && menuProps.doNotLayer) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { style: { display: 'inline-block' } },
                Content,
                this._shouldRenderMenu() && onRenderMenu(menuProps, this._onRenderMenu)));
        }
        return Content;
    };
    /**
     * Method to help determine if the menu's component tree should
     * be rendered. It takes into account whether the menu is expanded,
     * whether it is a persisted menu and whether it has been shown to the user.
     */
    BaseButton.prototype._shouldRenderMenu = function () {
        var menuHidden = this.state.menuHidden;
        var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;
        if (!menuHidden) {
            // Always should render a menu when it is expanded
            return true;
        }
        else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {
            // _renderedVisibleMenu ensures that the first rendering of
            // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.
            return true;
        }
        return false;
    };
    BaseButton.prototype._hasText = function () {
        // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText used to have
        // before the refactor that introduced this function. _onRenderTextContents does not require props.text to be undefined in order
        // for props.children to be used as a fallback. Purely a code maintainability/reuse issue, but logged as Issue #4979
        return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');
    };
    BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {
        var _this = this;
        var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;
        var keytipProps = this.props.keytipProps;
        var menuHidden = this.state.menuHidden;
        var classNames = getSplitButtonClassNames
            ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)
            : styles && Object(_SplitButton_SplitButton_classNames__WEBPACK_IMPORTED_MODULE_7__["getClassNames"])(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assign"])(buttonProps, {
            onClick: undefined,
            tabIndex: -1,
            'data-is-focusable': false
        });
        var ariaDescribedBy = buttonProps.ariaDescription;
        if (keytipProps && menuProps) {
            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);
        }
        var containerProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(buttonProps, [], ['disabled']);
        // Add additional props to apply on primary action button
        if (primaryActionButtonProps) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assign"])(buttonProps, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, primaryActionButtonProps));
        }
        var SplitButton = function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, containerProps, { "data-ktp-target": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', "aria-disabled": disabled, "aria-haspopup": true, "aria-expanded": !menuHidden, "aria-pressed": toggle ? !!checked : undefined, "aria-describedby": Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(ariaDescribedBy, keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, "data-is-focusable": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: !disabled || allowDisabledFocus ? 0 : undefined, "aria-roledescription": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { style: { display: 'flex' } },
                _this._onRenderContent(tag, buttonProps),
                _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),
                _this._onRenderSplitButtonDivider(classNames)))); };
        return keytipProps ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_8__["KeytipData"], { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());
    };
    BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {
        if (classNames && classNames.divider) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.divider, "aria-hidden": true });
        }
        return null;
    };
    BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {
        var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel;
        var menuHidden = this.state.menuHidden;
        var menuIconProps = this.props.menuIconProps;
        if (menuIconProps === undefined) {
            menuIconProps = {
                iconName: 'ChevronDown'
            };
        }
        var splitButtonProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, splitButtonMenuProps, { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, menuIconProps, { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });
        // Add data-ktp-execute-target to the split button if the keytip is defined
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](BaseButton, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, splitButtonProps, { "data-ktp-execute-target": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: -1 })));
    };
    BaseButton.prototype._onPointerDown = function (ev) {
        if (ev.pointerType === 'touch') {
            this._handleTouchAndPointerEvent();
            ev.preventDefault();
            ev.stopImmediatePropagation();
        }
    };
    BaseButton.prototype._handleTouchAndPointerEvent = function () {
        var _this = this;
        // If we already have an existing timeeout from a previous touch and pointer event
        // cancel that timeout so we can set a nwe one.
        if (this._lastTouchTimeoutId !== undefined) {
            this._async.clearTimeout(this._lastTouchTimeoutId);
            this._lastTouchTimeoutId = undefined;
        }
        this._processingTouch = true;
        this._lastTouchTimeoutId = this._async.setTimeout(function () {
            _this._processingTouch = false;
            _this._lastTouchTimeoutId = undefined;
        }, TouchIdleDelay);
    };
    /**
     * Returns if the user hits a valid keyboard key to open the menu
     * @param ev - the keyboard event
     * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.
     */
    BaseButton.prototype._isValidMenuOpenKey = function (ev) {
        if (this.props.menuTriggerKeyCode) {
            return ev.which === this.props.menuTriggerKeyCode;
        }
        else if (this.props.menuProps) {
            return ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down && (ev.altKey || ev.metaKey);
        }
        // Note: When enter is pressed, we will let the event continue to propagate
        // to trigger the onClick event on the button
        return false;
    };
    BaseButton.defaultProps = {
        baseClassName: 'ms-Button',
        styles: {},
        split: false
    };
    return BaseButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/BaseButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var noOutline = {
    outline: 0
};
var iconStyle = function (fontSize) {
    return {
        fontSize: fontSize,
        margin: '0 4px',
        height: '16px',
        lineHeight: '16px',
        textAlign: 'center',
        verticalAlign: 'middle',
        flexShrink: 0
    };
};
/**
 * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`
 * helper, it should have values for all class names in the interface. This let `mergeRules` optimize
 * mixing class names together.
 */
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (theme) {
    var _a;
    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var border = semanticColors.buttonBorder;
    var disabledBackground = semanticColors.disabledBackground;
    var disabledText = semanticColors.disabledText;
    var buttonHighContrastFocus = {
        left: -2,
        top: -2,
        bottom: -2,
        right: -2,
        border: 'none',
        outlineColor: 'ButtonText'
    };
    return {
        root: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),
            theme.fonts.medium,
            {
                boxSizing: 'border-box',
                border: '1px solid ' + border,
                userSelect: 'none',
                display: 'inline-block',
                textDecoration: 'none',
                textAlign: 'center',
                cursor: 'pointer',
                verticalAlign: 'top',
                padding: '0 16px',
                borderRadius: effects.roundedCorner2,
                selectors: {
                    // IE11 workaround for preventing shift of child elements of a button when active.
                    ':active > *': {
                        position: 'relative',
                        left: 0,
                        top: 0
                    }
                }
            }
        ],
        rootDisabled: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),
            {
                backgroundColor: disabledBackground,
                borderColor: disabledBackground,
                color: disabledText,
                cursor: 'default',
                pointerEvents: 'none',
                selectors: (_a = {
                        ':hover': noOutline,
                        ':focus': noOutline
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        color: 'grayText',
                        borderColor: 'grayText'
                    },
                    _a)
            }
        ],
        iconDisabled: {
            color: disabledText
        },
        menuIconDisabled: {
            color: disabledText
        },
        flexContainer: {
            display: 'flex',
            height: '100%',
            flexWrap: 'nowrap',
            justifyContent: 'center',
            alignItems: 'center'
        },
        description: {
            display: 'block'
        },
        textContainer: {
            flexGrow: 1,
            display: 'block'
        },
        icon: iconStyle(fonts.mediumPlus.fontSize),
        menuIcon: iconStyle(fonts.small.fontSize),
        label: {
            margin: '0 4px',
            lineHeight: '100%',
            display: 'block'
        },
        screenReaderText: _Styling__WEBPACK_IMPORTED_MODULE_1__["hiddenContentStyle"]
    };
});


/***/ }),

/***/ "./lib/components/Button/Button.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return Button; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/Button.types.js");
/* harmony import */ var _DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/DefaultButton/DefaultButton.js");
/* harmony import */ var _ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Button/ActionButton/ActionButton.js");
/* harmony import */ var _CompoundButton_CompoundButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Button/CompoundButton/CompoundButton.js");
/* harmony import */ var _IconButton_IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Button/IconButton/IconButton.js");
/* harmony import */ var _PrimaryButton_PrimaryButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/Button/PrimaryButton/PrimaryButton.js");









/**
 * This class is deprecated. Use the individual *Button components instead.
 * @deprecated Use the individual *Button components instead.
 * {@docCategory Button}
 */
var Button = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Button, _super);
    function Button(props) {
        var _this = _super.call(this, props) || this;
        /**
         * Set this BaseComponent._skipComponentRefResolution to true, bypassing resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warn"])("The Button component has been deprecated. Use specific variants instead. " +
            "(PrimaryButton, DefaultButton, IconButton, ActionButton, etc.)");
        return _this;
    }
    Button.prototype.render = function () {
        var props = this.props;
        switch (props.buttonType) {
            case _Button_types__WEBPACK_IMPORTED_MODULE_3__["ButtonType"].command:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_5__["ActionButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
            case _Button_types__WEBPACK_IMPORTED_MODULE_3__["ButtonType"].compound:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CompoundButton_CompoundButton__WEBPACK_IMPORTED_MODULE_6__["CompoundButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
            case _Button_types__WEBPACK_IMPORTED_MODULE_3__["ButtonType"].icon:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_IconButton_IconButton__WEBPACK_IMPORTED_MODULE_7__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
            case _Button_types__WEBPACK_IMPORTED_MODULE_3__["ButtonType"].primary:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PrimaryButton_PrimaryButton__WEBPACK_IMPORTED_MODULE_8__["PrimaryButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
            default:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_4__["DefaultButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        }
    };
    return Button;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/Button.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ElementType", function() { return ElementType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonType", function() { return ButtonType; });
/**
 * {@docCategory Button}
 */
var ElementType;
(function (ElementType) {
    /** <button> element. */
    ElementType[ElementType["button"] = 0] = "button";
    /** <a> element. */
    ElementType[ElementType["anchor"] = 1] = "anchor";
})(ElementType || (ElementType = {}));
/**
 * {@docCategory Button}
 */
var ButtonType;
(function (ButtonType) {
    ButtonType[ButtonType["normal"] = 0] = "normal";
    ButtonType[ButtonType["primary"] = 1] = "primary";
    ButtonType[ButtonType["hero"] = 2] = "hero";
    ButtonType[ButtonType["compound"] = 3] = "compound";
    ButtonType[ButtonType["command"] = 4] = "command";
    ButtonType[ButtonType["icon"] = 5] = "icon";
    ButtonType[ButtonType["default"] = 6] = "default";
})(ButtonType || (ButtonType = {}));


/***/ }),

/***/ "./lib/components/Button/ButtonThemes.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "standardStyles", function() { return standardStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "primaryStyles", function() { return primaryStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


function standardStyles(theme) {
    var _a, _b, _c, _d, _e;
    var s = theme.semanticColors, p = theme.palette;
    var buttonBackground = s.buttonBackground;
    var buttonBackgroundPressed = s.buttonBackgroundPressed;
    var buttonBackgroundHovered = s.buttonBackgroundHovered;
    var buttonText = s.buttonText;
    var buttonTextHovered = s.buttonTextHovered;
    var buttonTextChecked = s.buttonTextChecked;
    var buttonTextCheckedHovered = s.buttonTextCheckedHovered;
    return {
        root: {
            backgroundColor: buttonBackground,
            color: buttonText
        },
        rootHovered: {
            backgroundColor: buttonBackgroundHovered,
            color: buttonTextHovered,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight',
                    color: 'Highlight'
                },
                _a)
        },
        rootPressed: {
            backgroundColor: buttonBackgroundPressed,
            color: buttonTextChecked
        },
        rootExpanded: {
            backgroundColor: buttonBackgroundPressed,
            color: buttonTextChecked
        },
        rootChecked: {
            backgroundColor: buttonBackgroundPressed,
            color: buttonTextChecked
        },
        rootCheckedHovered: {
            backgroundColor: buttonBackgroundPressed,
            color: buttonTextCheckedHovered
        },
        rootDisabled: {
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText',
                    borderColor: 'GrayText',
                    backgroundColor: 'Window'
                },
                _b)
        },
        // Split button styles
        splitButtonContainer: {
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    border: 'none'
                },
                _c)
        },
        splitButtonMenuButton: {
            color: p.white,
            backgroundColor: 'transparent',
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralLight,
                    selectors: (_d = {},
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Highlight'
                        },
                        _d)
                }
            }
        },
        splitButtonMenuButtonDisabled: {
            backgroundColor: s.buttonBackgroundDisabled,
            selectors: {
                ':hover': {
                    backgroundColor: s.buttonBackgroundDisabled
                }
            }
        },
        splitButtonDivider: {
            backgroundColor: p.neutralTertiaryAlt,
            position: 'absolute',
            width: 1,
            right: 31,
            top: 8,
            bottom: 8,
            selectors: (_e = {},
                _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'WindowText'
                },
                _e)
        },
        splitButtonDividerDisabled: {
            backgroundColor: theme.palette.neutralTertiaryAlt
        },
        splitButtonMenuButtonChecked: {
            backgroundColor: p.neutralQuaternaryAlt,
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralQuaternaryAlt
                }
            }
        },
        splitButtonMenuButtonExpanded: {
            backgroundColor: p.neutralQuaternaryAlt,
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralQuaternaryAlt
                }
            }
        },
        splitButtonMenuIcon: {
            color: s.buttonText
        },
        splitButtonMenuIconDisabled: {
            color: s.buttonTextDisabled
        }
    };
}
function primaryStyles(theme) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    var p = theme.palette, s = theme.semanticColors;
    return {
        root: {
            backgroundColor: s.primaryButtonBackground,
            color: s.primaryButtonText,
            border: 'none',
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Window',
                    backgroundColor: 'WindowText',
                    MsHighContrastAdjust: 'none'
                },
                _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus"] = {
                    selectors: {
                        ':after': {
                            border: "none",
                            outlineColor: p.white
                        }
                    }
                },
                _a)
        },
        rootHovered: {
            backgroundColor: s.primaryButtonBackgroundHovered,
            color: s.primaryButtonTextHovered,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Window',
                    backgroundColor: 'Highlight'
                },
                _b)
        },
        rootPressed: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            color: s.primaryButtonTextPressed,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Window',
                    backgroundColor: 'WindowText',
                    MsHighContrastAdjust: 'none'
                },
                _c)
        },
        rootExpanded: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            color: s.primaryButtonTextPressed
        },
        rootChecked: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            color: s.primaryButtonTextPressed
        },
        rootCheckedHovered: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            color: s.primaryButtonTextPressed
        },
        rootDisabled: {
            selectors: (_d = {},
                _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText',
                    borderColor: 'GrayText',
                    backgroundColor: 'Window'
                },
                _d)
        },
        // Split button styles
        splitButtonContainer: {
            selectors: (_e = {},
                _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    border: 'none'
                },
                _e)
        },
        splitButtonDivider: {
            backgroundColor: p.neutralTertiaryAlt,
            position: 'absolute',
            width: 1,
            right: 31,
            top: 8,
            bottom: 8,
            selectors: (_f = {},
                _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'Window'
                },
                _f)
        },
        splitButtonMenuButton: {
            backgroundColor: s.primaryButtonBackground,
            color: s.primaryButtonText,
            selectors: (_g = {},
                _g[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'WindowText'
                },
                _g[':hover'] = {
                    backgroundColor: s.primaryButtonBackgroundHovered,
                    selectors: (_h = {},
                        _h[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Highlight'
                        },
                        _h)
                },
                _g)
        },
        splitButtonMenuButtonDisabled: {
            backgroundColor: s.primaryButtonBackgroundDisabled,
            selectors: {
                ':hover': {
                    backgroundColor: s.primaryButtonBackgroundDisabled
                }
            }
        },
        splitButtonMenuButtonChecked: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            selectors: {
                ':hover': {
                    backgroundColor: s.primaryButtonBackgroundPressed
                }
            }
        },
        splitButtonMenuButtonExpanded: {
            backgroundColor: s.primaryButtonBackgroundPressed,
            selectors: {
                ':hover': {
                    backgroundColor: s.primaryButtonBackgroundPressed
                }
            }
        },
        splitButtonMenuIcon: {
            color: s.primaryButtonText
        },
        splitButtonMenuIconDisabled: {
            color: p.neutralTertiary,
            selectors: (_j = {},
                _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText'
                },
                _j)
        }
    };
}


/***/ }),

/***/ "./lib/components/Button/CommandBarButton/CommandBarButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBarButton", function() { return CommandBarButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _CommandBarButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/CommandBarButton/CommandBarButton.styles.js");





/**
 * {@docCategory Button}
 */
var CommandBarButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CommandBarButton, _super);
    function CommandBarButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    CommandBarButton.prototype.render = function () {
        var _a = this.props, styles = _a.styles, theme = _a.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_BaseButton__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { variantClassName: "ms-Button--commandBar", styles: Object(_CommandBarButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles), onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] })));
    };
    CommandBarButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('CommandBarButton', ['theme', 'styles'], true)
    ], CommandBarButton);
    return CommandBarButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/CommandBarButton/CommandBarButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");
/* harmony import */ var _SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/SplitButton/SplitButton.styles.js");
/* harmony import */ var _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/BaseButton.classNames.js");





var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, focusInset, focusColor) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var baseSplitButtonStyles = Object(_SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(theme);
    var p = theme.palette, semanticColors = theme.semanticColors;
    var commandButtonHighContrastFocus = {
        left: 4,
        top: 4,
        bottom: 4,
        right: 4,
        border: 'none'
    };
    var commandButtonStyles = {
        root: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: 2, highContrastStyle: commandButtonHighContrastFocus, borderColor: 'transparent' }),
            theme.fonts.medium,
            {
                minWidth: '40px',
                backgroundColor: p.white,
                color: p.neutralPrimary,
                padding: '0 4px',
                border: 'none',
                borderRadius: 0,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: 'none'
                    },
                    _a)
            }
        ],
        rootHovered: {
            backgroundColor: p.neutralLighter,
            color: p.neutralDark,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Highlight'
                },
                _b["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: p.themeDarkAlt
                },
                _b["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonMenuIcon] = {
                    color: p.neutralPrimary
                },
                _b)
        },
        rootPressed: {
            backgroundColor: p.neutralLight,
            color: p.neutralDark,
            selectors: (_c = {},
                _c["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: p.themeDark
                },
                _c["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonMenuIcon] = {
                    color: p.neutralPrimary
                },
                _c)
        },
        rootChecked: {
            backgroundColor: p.neutralLight,
            color: p.neutralDark,
            selectors: (_d = {},
                _d["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: p.themeDark
                },
                _d["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonMenuIcon] = {
                    color: p.neutralPrimary
                },
                _d)
        },
        rootCheckedHovered: {
            backgroundColor: p.neutralQuaternaryAlt,
            selectors: (_e = {},
                _e["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: p.themeDark
                },
                _e["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonMenuIcon] = {
                    color: p.neutralPrimary
                },
                _e)
        },
        rootExpanded: {
            backgroundColor: p.neutralLight,
            color: p.neutralDark,
            selectors: (_f = {},
                _f["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: p.themeDark
                },
                _f["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonMenuIcon] = {
                    color: p.neutralPrimary
                },
                _f)
        },
        rootExpandedHovered: {
            backgroundColor: p.neutralQuaternaryAlt
        },
        rootDisabled: {
            backgroundColor: p.white,
            selectors: (_g = {},
                _g["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                    color: semanticColors.disabledBodySubtext
                },
                _g)
        },
        // Split button styles
        splitButtonContainer: {
            height: '100%',
            selectors: (_h = {},
                _h[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    border: 'none'
                },
                _h)
        },
        splitButtonDivider: {
            backgroundColor: p.neutralTertiaryAlt,
            marginTop: 4,
            marginBottom: 4
        },
        splitButtonMenuButton: {
            backgroundColor: p.white,
            border: 'none',
            borderTopRightRadius: '0',
            borderBottomRightRadius: '0',
            color: p.neutralSecondary,
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralLighter,
                    color: p.neutralDark,
                    selectors: (_j = {},
                        _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Highlight'
                        },
                        _j["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                            color: p.neutralPrimary
                        },
                        _j)
                },
                ':active': {
                    backgroundColor: p.neutralLight,
                    selectors: (_k = {},
                        _k["." + _BaseButton_classNames__WEBPACK_IMPORTED_MODULE_4__["ButtonGlobalClassNames"].msButtonIcon] = {
                            color: p.neutralPrimary
                        },
                        _k)
                }
            }
        },
        splitButtonMenuButtonDisabled: {
            backgroundColor: p.white
        },
        splitButtonMenuButtonChecked: {
            backgroundColor: p.neutralLight,
            color: p.neutralDark,
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralQuaternaryAlt
                }
            }
        },
        splitButtonMenuButtonExpanded: {
            backgroundColor: p.neutralLight,
            color: p.black,
            selectors: {
                ':hover': {
                    backgroundColor: p.neutralQuaternaryAlt
                }
            }
        },
        splitButtonMenuIcon: {
            color: p.neutralPrimary
        },
        splitButtonMenuIconDisabled: {
            color: p.neutralTertiary
        },
        label: {
            fontWeight: 'normal' // theme.fontWeights.semibold,
        },
        icon: {
            color: p.themePrimary
        },
        menuIcon: {
            color: p.neutralSecondary
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, baseSplitButtonStyles, commandButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/CommandButton/CommandButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandButton", function() { return CommandButton; });
/* harmony import */ var _ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Button/ActionButton/ActionButton.js");

/**
 * {@docCategory Button}
 */
var CommandButton = _ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_0__["ActionButton"];


/***/ }),

/***/ "./lib/components/Button/CompoundButton/CompoundButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompoundButton", function() { return CompoundButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _CompoundButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/CompoundButton/CompoundButton.styles.js");





/**
 * {@docCategory Button}
 */
var CompoundButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CompoundButton, _super);
    function CompoundButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    CompoundButton.prototype.render = function () {
        var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_BaseButton__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { variantClassName: primary ? 'ms-Button--compoundPrimary' : 'ms-Button--compound', styles: Object(_CompoundButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles, primary) })));
    };
    CompoundButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('CompoundButton', ['theme', 'styles'], true)
    ], CompoundButton);
    return CompoundButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/CompoundButton/CompoundButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");
/* harmony import */ var _SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/SplitButton/SplitButton.styles.js");
/* harmony import */ var _ButtonThemes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/ButtonThemes.js");





var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, primary) {
    var _a, _b, _c, _d, _e;
    var fonts = theme.fonts, palette = theme.palette;
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var splitButtonStyles = Object(_SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(theme);
    var compoundButtonStyles = {
        root: {
            maxWidth: '280px',
            minHeight: '72px',
            height: 'auto',
            padding: '16px 12px'
        },
        flexContainer: {
            flexDirection: 'row',
            alignItems: 'flex-start',
            minWidth: '100%',
            margin: ''
        },
        textContainer: {
            textAlign: 'left'
        },
        icon: {
            fontSize: '2em',
            lineHeight: '1em',
            height: '1em',
            margin: '0px 8px 0px 0px',
            flexBasis: '1em',
            flexShrink: '0'
        },
        label: {
            margin: '0 0 5px',
            lineHeight: '100%',
            fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
        },
        description: [
            fonts.small,
            {
                lineHeight: '100%'
            }
        ]
    };
    var standardCompoundTheme = {
        description: {
            color: palette.neutralSecondary
        },
        descriptionHovered: {
            color: palette.neutralDark
        },
        descriptionPressed: {
            color: 'inherit'
        },
        descriptionChecked: {
            color: 'inherit'
        },
        descriptionDisabled: {
            color: 'inherit'
        }
    };
    var primaryCompoundTheme = {
        description: {
            color: palette.white,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'WindowText',
                    color: 'Window',
                    MsHighContrastAdjust: 'none'
                },
                _a)
        },
        descriptionHovered: {
            color: palette.white,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'Highlight',
                    color: 'Window'
                },
                _b)
        },
        descriptionPressed: {
            color: 'inherit',
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Window',
                    backgroundColor: 'WindowText',
                    MsHighContrastAdjust: 'none'
                },
                _c)
        },
        descriptionChecked: {
            color: 'inherit',
            selectors: (_d = {},
                _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'Window',
                    backgroundColor: 'WindowText',
                    MsHighContrastAdjust: 'none'
                },
                _d)
        },
        descriptionDisabled: {
            color: 'inherit',
            selectors: (_e = {},
                _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'inherit'
                },
                _e)
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, compoundButtonStyles, primary ? Object(_ButtonThemes__WEBPACK_IMPORTED_MODULE_4__["primaryStyles"])(theme) : Object(_ButtonThemes__WEBPACK_IMPORTED_MODULE_4__["standardStyles"])(theme), primary ? primaryCompoundTheme : standardCompoundTheme, splitButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/DefaultButton/DefaultButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultButton", function() { return DefaultButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DefaultButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/DefaultButton/DefaultButton.styles.js");





/**
 * {@docCategory Button}
 */
var DefaultButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DefaultButton, _super);
    function DefaultButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    DefaultButton.prototype.render = function () {
        var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_BaseButton__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: Object(_DefaultButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles, primary), onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] })));
    };
    DefaultButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('DefaultButton', ['theme', 'styles'], true)
    ], DefaultButton);
    return DefaultButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/DefaultButton/DefaultButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");
/* harmony import */ var _SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/SplitButton/SplitButton.styles.js");
/* harmony import */ var _ButtonThemes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/ButtonThemes.js");





var DEFAULT_BUTTON_HEIGHT = '32px';
var DEFAULT_BUTTON_MIN_WIDTH = '80px';
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, primary) {
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var splitButtonStyles = Object(_SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(theme);
    var defaultButtonStyles = {
        root: {
            minWidth: DEFAULT_BUTTON_MIN_WIDTH,
            height: DEFAULT_BUTTON_HEIGHT
        },
        label: {
            fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, defaultButtonStyles, primary ? Object(_ButtonThemes__WEBPACK_IMPORTED_MODULE_4__["primaryStyles"])(theme) : Object(_ButtonThemes__WEBPACK_IMPORTED_MODULE_4__["standardStyles"])(theme), splitButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/IconButton/IconButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return IconButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _IconButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/IconButton/IconButton.styles.js");





/**
 * {@docCategory Button}
 */
var IconButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IconButton, _super);
    function IconButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    IconButton.prototype.render = function () {
        var _a = this.props, styles = _a.styles, theme = _a.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_BaseButton__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { variantClassName: "ms-Button--icon", styles: Object(_IconButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles), onRenderText: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"], onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] })));
    };
    IconButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('IconButton', ['theme', 'styles'], true)
    ], IconButton);
    return IconButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/IconButton/IconButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");
/* harmony import */ var _SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/SplitButton/SplitButton.styles.js");




var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles) {
    var _a;
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var splitButtonStyles = Object(_SplitButton_SplitButton_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(theme);
    var palette = theme.palette, semanticColors = theme.semanticColors;
    var iconButtonStyles = {
        root: {
            padding: '0 4px',
            width: '32px',
            height: '32px',
            backgroundColor: 'transparent',
            border: 'none',
            color: semanticColors.link
        },
        rootHovered: {
            color: palette.themeDarkAlt,
            backgroundColor: palette.neutralLighter,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight',
                    color: 'Highlight'
                },
                _a)
        },
        rootHasMenu: {
            width: 'auto'
        },
        rootPressed: {
            color: palette.themeDark,
            backgroundColor: palette.neutralLight
        },
        rootExpanded: {
            color: palette.themeDark,
            backgroundColor: palette.neutralLight
        },
        rootChecked: {
            color: palette.themeDark,
            backgroundColor: palette.neutralLight
        },
        rootCheckedHovered: {
            color: palette.themeDark,
            backgroundColor: palette.neutralQuaternaryAlt
        },
        rootDisabled: {
            color: palette.neutralTertiaryAlt
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/MessageBarButton/MessageBarButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBarButton", function() { return MessageBarButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/DefaultButton/DefaultButton.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _MessageBarButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/MessageBarButton/MessageBarButton.styles.js");





/**
 * {@docCategory MessageBar}
 */
var MessageBarButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MessageBarButton, _super);
    function MessageBarButton() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    MessageBarButton.prototype.render = function () {
        var _a = this.props, styles = _a.styles, theme = _a.theme;
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_2__["DefaultButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { styles: Object(_MessageBarButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(theme, styles), onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] }));
    };
    MessageBarButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('MessageBarButton', ['theme', 'styles'], true)
    ], MessageBarButton);
    return MessageBarButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/MessageBarButton/MessageBarButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");



var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, focusInset, focusColor) {
    var baseButtonStyles = Object(_BaseButton_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"])(theme);
    var messageBarButtonStyles = {
        root: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, {
                inset: 1,
                highContrastStyle: {
                    outlineOffset: '-4px',
                    outlineColor: 'ActiveBorder'
                },
                borderColor: 'transparent'
            }),
            {
                height: 24,
                borderColor: theme.palette.neutralTertiaryAlt
            }
        ]
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(baseButtonStyles, messageBarButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/PrimaryButton/PrimaryButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrimaryButton", function() { return PrimaryButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/DefaultButton/DefaultButton.js");




/**
 * {@docCategory Button}
 */
var PrimaryButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PrimaryButton, _super);
    function PrimaryButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Set this BaseComponent._skipComponentRefResolution to true, bypassing resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    PrimaryButton.prototype.render = function () {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_3__["DefaultButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { primary: true, onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_2__["nullRender"] }));
    };
    PrimaryButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["customizable"])('PrimaryButton', ['theme', 'styles'], true)
    ], PrimaryButton);
    return PrimaryButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Button/SplitButton/SplitButton.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (styles, disabled, expanded, checked, primaryDisabled) {
    return {
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked]),
        splitButtonContainer: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.splitButtonContainer, !disabled &&
            checked && [
            styles.splitButtonContainerChecked,
            {
                selectors: {
                    ':hover': styles.splitButtonContainerCheckedHovered
                }
            }
        ], !disabled &&
            !checked && [
            {
                selectors: {
                    ':hover': styles.splitButtonContainerHovered,
                    ':focus': styles.splitButtonContainerFocused
                }
            }
        ], disabled && styles.splitButtonContainerDisabled),
        icon: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),
        flexContainer: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.splitButtonFlexContainer),
        divider: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled)
    };
});


/***/ }),

/***/ "./lib/components/Button/SplitButton/SplitButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    var effects = theme.effects, palette = theme.palette;
    var buttonHighContrastFocus = {
        left: -2,
        top: -2,
        bottom: -2,
        right: -2,
        border: 'none'
    };
    var splitButtonDividerDisabled = {
        position: 'absolute',
        width: 1,
        right: 31,
        top: 8,
        bottom: 8,
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                backgroundColor: 'GrayText'
            },
            _a)
    };
    var splitButtonStyles = {
        splitButtonContainer: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 }),
            {
                display: 'inline-flex',
                selectors: {
                    '.ms-Button--default': {
                        borderTopRightRadius: '0',
                        borderBottomRightRadius: '0',
                        borderRight: 'none'
                    },
                    '.ms-Button--primary': {
                        borderTopRightRadius: '0',
                        borderBottomRightRadius: '0',
                        border: 'none',
                        selectors: (_b = {},
                            _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                color: 'Window',
                                backgroundColor: 'WindowText',
                                MsHighContrastAdjust: 'none'
                            },
                            _b)
                    },
                    '.ms-Button--primary + .ms-Button': {
                        border: 'none'
                    }
                }
            }
        ],
        splitButtonContainerHovered: {
            selectors: {
                '.ms-Button--primary': {
                    selectors: (_c = {},
                        _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Window',
                            backgroundColor: 'Highlight'
                        },
                        _c)
                },
                '.ms-Button.is-disabled': {
                    selectors: (_d = {},
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'GrayText',
                            borderColor: 'GrayText',
                            backgroundColor: 'Window'
                        },
                        _d)
                }
            }
        },
        splitButtonContainerChecked: {
            selectors: {
                '.ms-Button--primary': {
                    selectors: (_e = {},
                        _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Window',
                            backgroundColor: 'WindowText',
                            MsHighContrastAdjust: 'none'
                        },
                        _e)
                }
            }
        },
        splitButtonContainerCheckedHovered: {
            selectors: {
                '.ms-Button--primary': {
                    selectors: (_f = {},
                        _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'Window',
                            backgroundColor: 'WindowText',
                            MsHighContrastAdjust: 'none'
                        },
                        _f)
                }
            }
        },
        splitButtonContainerFocused: {
            outline: 'none!important'
        },
        splitButtonMenuButton: {
            padding: 6,
            height: 'auto',
            boxSizing: 'border-box',
            borderRadius: 0,
            borderTopRightRadius: effects.roundedCorner2,
            borderBottomRightRadius: effects.roundedCorner2,
            border: "1px solid " + palette.neutralSecondaryAlt,
            borderLeft: 'none',
            outline: 'transparent',
            userSelect: 'none',
            display: 'inline-block',
            textDecoration: 'none',
            textAlign: 'center',
            cursor: 'pointer',
            verticalAlign: 'top',
            width: 32,
            marginLeft: -1,
            marginTop: 0,
            marginRight: 0,
            marginBottom: 0
        },
        splitButtonDividerDisabled: splitButtonDividerDisabled,
        splitButtonMenuButtonDisabled: {
            pointerEvents: 'none',
            border: 'none',
            selectors: (_g = {
                    ':hover': {
                        cursor: 'default'
                    },
                    '.ms-Button--primary': {
                        selectors: (_h = {},
                            _h[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                color: 'GrayText',
                                borderColor: 'GrayText',
                                backgroundColor: 'Window'
                            },
                            _h)
                    }
                },
                _g[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    border: "1px solid GrayText",
                    color: 'GrayText',
                    backgroundColor: 'Window'
                },
                _g)
        },
        splitButtonFlexContainer: {
            display: 'flex',
            height: '100%',
            flexWrap: 'nowrap',
            justifyContent: 'center',
            alignItems: 'center'
        },
        splitButtonContainerDisabled: {
            outline: 'none',
            border: 'none',
            selectors: (_j = {},
                _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText',
                    borderColor: 'GrayText',
                    backgroundColor: 'Window'
                },
                _j)
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(splitButtonStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/Button/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Button/BaseButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseButton", function() { return _BaseButton__WEBPACK_IMPORTED_MODULE_0__["BaseButton"]; });

/* harmony import */ var _Button_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Button/Button.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementType", function() { return _Button_types__WEBPACK_IMPORTED_MODULE_1__["ElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonType", function() { return _Button_types__WEBPACK_IMPORTED_MODULE_1__["ButtonType"]; });

/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Button/Button.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _Button__WEBPACK_IMPORTED_MODULE_2__["Button"]; });

/* harmony import */ var _ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/ActionButton/ActionButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionButton", function() { return _ActionButton_ActionButton__WEBPACK_IMPORTED_MODULE_3__["ActionButton"]; });

/* harmony import */ var _CommandBarButton_CommandBarButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Button/CommandBarButton/CommandBarButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarButton", function() { return _CommandBarButton_CommandBarButton__WEBPACK_IMPORTED_MODULE_4__["CommandBarButton"]; });

/* harmony import */ var _CommandButton_CommandButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Button/CommandButton/CommandButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandButton", function() { return _CommandButton_CommandButton__WEBPACK_IMPORTED_MODULE_5__["CommandButton"]; });

/* harmony import */ var _CompoundButton_CompoundButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Button/CompoundButton/CompoundButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompoundButton", function() { return _CompoundButton_CompoundButton__WEBPACK_IMPORTED_MODULE_6__["CompoundButton"]; });

/* harmony import */ var _DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Button/DefaultButton/DefaultButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultButton", function() { return _DefaultButton_DefaultButton__WEBPACK_IMPORTED_MODULE_7__["DefaultButton"]; });

/* harmony import */ var _MessageBarButton_MessageBarButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/Button/MessageBarButton/MessageBarButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarButton", function() { return _MessageBarButton_MessageBarButton__WEBPACK_IMPORTED_MODULE_8__["MessageBarButton"]; });

/* harmony import */ var _PrimaryButton_PrimaryButton__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/Button/PrimaryButton/PrimaryButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrimaryButton", function() { return _PrimaryButton_PrimaryButton__WEBPACK_IMPORTED_MODULE_9__["PrimaryButton"]; });

/* harmony import */ var _IconButton_IconButton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/Button/IconButton/IconButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return _IconButton_IconButton__WEBPACK_IMPORTED_MODULE_10__["IconButton"]; });














/***/ }),

/***/ "./lib/components/Calendar/Calendar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return Calendar; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/dateValues/DateValues.js");
/* harmony import */ var _CalendarDay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Calendar/CalendarDay.js");
/* harmony import */ var _CalendarMonth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Calendar/CalendarMonth.js");
/* harmony import */ var _utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/dateMath/DateMath.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Calendar_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Calendar/Calendar.scss.js");








var styles = _Calendar_scss__WEBPACK_IMPORTED_MODULE_7__;
var leftArrow = 'Up';
var rightArrow = 'Down';
var closeIcon = 'CalculatorMultiply';
var iconStrings = {
    leftNavigation: leftArrow,
    rightNavigation: rightArrow,
    closeIcon: closeIcon
};
var defaultWorkWeekDays = [_utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Monday, _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Tuesday, _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Wednesday, _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Thursday, _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Friday];
var dateTimeFormatterCallbacks = {
    formatMonthDayYear: function (date, strings) {
        return strings.months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();
    },
    formatMonthYear: function (date, strings) { return strings.months[date.getMonth()] + ' ' + date.getFullYear(); },
    formatDay: function (date) { return date.getDate().toString(); },
    formatYear: function (date) { return date.getFullYear().toString(); }
};
var Calendar = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Calendar, _super);
    function Calendar(props) {
        var _this = _super.call(this, props) || this;
        _this._dayPicker = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._monthPicker = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._navigateDayPickerDay = function (date) {
            _this.setState({
                navigatedDayDate: date,
                navigatedMonthDate: date
            });
        };
        _this._navigateMonthPickerDay = function (date) {
            _this.setState({
                navigatedMonthDate: date
            });
        };
        _this._onNavigateDayDate = function (date, focusOnNavigatedDay) {
            _this._navigateDayPickerDay(date);
            _this._focusOnUpdate = focusOnNavigatedDay;
        };
        _this._onNavigateMonthDate = function (date, focusOnNavigatedDay) {
            if (!focusOnNavigatedDay) {
                _this._navigateMonthPickerDay(date);
                _this._focusOnUpdate = focusOnNavigatedDay;
                return;
            }
            var monthPickerOnly = !_this.props.showMonthPickerAsOverlay && !_this.props.isDayPickerVisible;
            if (monthPickerOnly) {
                _this._onSelectDate(date);
            }
            _this._navigateDayPickerDay(date);
        };
        _this._onSelectDate = function (date, selectedDateRangeArray) {
            var onSelectDate = _this.props.onSelectDate;
            _this.setState({
                selectedDate: date
            });
            if (onSelectDate) {
                onSelectDate(date, selectedDateRangeArray);
            }
        };
        _this._onHeaderSelect = function (focus) {
            _this.setState({
                isDayPickerVisible: !_this.state.isDayPickerVisible,
                isMonthPickerVisible: !_this.state.isMonthPickerVisible
            });
            if (focus) {
                _this._focusOnUpdate = true;
            }
        };
        _this._onGotoToday = function () {
            var _a = _this.props, dateRangeType = _a.dateRangeType, firstDayOfWeek = _a.firstDayOfWeek, today = _a.today, workWeekDays = _a.workWeekDays, selectDateOnClick = _a.selectDateOnClick;
            if (selectDateOnClick) {
                // When using Defaultprops, TypeScript doesn't know that React is going to inject defaults
                // so we use exclamation mark as a hint to the type checker (see link below)
                // https://decembersoft.com/posts/error-ts2532-optional-react-component-props-in-typescript/
                var dates = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_5__["getDateRangeArray"])(today, dateRangeType, firstDayOfWeek, workWeekDays);
                _this._onSelectDate(today, dates);
            }
            _this._navigateDayPickerDay(today);
            _this._focusOnUpdate = true;
        };
        _this._onGotoTodayClick = function (ev) {
            _this._onGotoToday();
        };
        _this._onGotoTodayKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_6__["KeyCodes"].enter) {
                ev.preventDefault();
                _this._onGotoToday();
            }
        };
        _this._onDatePickerPopupKeyDown = function (ev) {
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_6__["KeyCodes"].enter:
                    ev.preventDefault();
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_6__["KeyCodes"].backspace:
                    ev.preventDefault();
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_6__["KeyCodes"].escape:
                    _this._handleEscKey(ev);
                    break;
                default:
                    break;
            }
        };
        _this._handleEscKey = function (ev) {
            if (_this.props.onDismiss) {
                _this.props.onDismiss();
            }
        };
        var currentDate = props.value && !isNaN(props.value.getTime()) ? props.value : props.today || new Date();
        _this.state = {
            selectedDate: currentDate,
            navigatedDayDate: currentDate,
            navigatedMonthDate: currentDate,
            /** When showMonthPickerAsOverlay is active it overrides isMonthPickerVisible/isDayPickerVisible props
             (These props permanently set the visibility of their respective calendars). */
            isMonthPickerVisible: _this.props.showMonthPickerAsOverlay ? false : _this.props.isMonthPickerVisible,
            isDayPickerVisible: _this.props.showMonthPickerAsOverlay ? true : _this.props.isDayPickerVisible
        };
        _this._focusOnUpdate = false;
        return _this;
    }
    // tslint:disable-next-line function-name
    Calendar.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        var autoNavigateOnSelection = nextProps.autoNavigateOnSelection, value = nextProps.value, _a = nextProps.today, today = _a === void 0 ? new Date() : _a;
        // Make sure auto-navigation is supported for programmatic changes to selected date, i.e.,
        // if selected date is updated via props, we may need to modify the navigated date
        var overrideNavigatedDate = autoNavigateOnSelection && !Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_5__["compareDates"])(value, this.props.value);
        if (overrideNavigatedDate) {
            this.setState({
                navigatedMonthDate: value,
                navigatedDayDate: value
            });
        }
        this.setState({
            selectedDate: value || today
        });
    };
    Calendar.prototype.componentDidUpdate = function () {
        if (this._focusOnUpdate) {
            this.focus();
            this._focusOnUpdate = false;
        }
    };
    Calendar.prototype.render = function () {
        var _a;
        var rootClass = 'ms-DatePicker';
        var _b = this.props, firstDayOfWeek = _b.firstDayOfWeek, dateRangeType = _b.dateRangeType, strings = _b.strings, showMonthPickerAsOverlay = _b.showMonthPickerAsOverlay, autoNavigateOnSelection = _b.autoNavigateOnSelection, showGoToToday = _b.showGoToToday, highlightCurrentMonth = _b.highlightCurrentMonth, highlightSelectedMonth = _b.highlightSelectedMonth, navigationIcons = _b.navigationIcons, minDate = _b.minDate, maxDate = _b.maxDate, restrictedDates = _b.restrictedDates, className = _b.className, showCloseButton = _b.showCloseButton, allFocusable = _b.allFocusable, yearPickerHidden = _b.yearPickerHidden, today = _b.today;
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_6__["divProperties"], ['value']);
        var _c = this.state, selectedDate = _c.selectedDate, navigatedDayDate = _c.navigatedDayDate, navigatedMonthDate = _c.navigatedMonthDate, isMonthPickerVisible = _c.isMonthPickerVisible, isDayPickerVisible = _c.isDayPickerVisible;
        var onHeaderSelect = showMonthPickerAsOverlay ? this._onHeaderSelect : undefined;
        var monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;
        var overlayedWithButton = showMonthPickerAsOverlay && showGoToToday;
        var goTodayEnabled = showGoToToday;
        if (goTodayEnabled && navigatedDayDate && navigatedMonthDate && today) {
            goTodayEnabled =
                navigatedDayDate.getFullYear() !== today.getFullYear() ||
                    navigatedDayDate.getMonth() !== today.getMonth() ||
                    navigatedMonthDate.getFullYear() !== today.getFullYear() ||
                    navigatedMonthDate.getMonth() !== today.getMonth();
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])(rootClass, styles.root, className), role: "application" },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])('ms-DatePicker-picker ms-DatePicker-picker--opened ms-DatePicker-picker--focused', styles.picker, styles.pickerIsOpened, styles.pickerIsFocused, isMonthPickerVisible && 'ms-DatePicker-monthPickerVisible ' + styles.monthPickerVisible, isMonthPickerVisible && isDayPickerVisible && 'ms-DatePicker-calendarsInline ' + styles.calendarsInline, monthPickerOnly && 'ms-DatePicker-monthPickerOnly ' + styles.monthPickerOnly, showMonthPickerAsOverlay && 'ms-DatePicker-monthPickerAsOverlay ' + styles.monthPickerAsOverlay) }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])('ms-DatePicker-holder ms-slideDownIn10', styles.holder, overlayedWithButton && styles.holderWithButton), onKeyDown: this._onDatePickerPopupKeyDown },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])('ms-DatePicker-frame', styles.frame) },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])('ms-DatePicker-wrap', styles.wrap, showGoToToday && styles.goTodaySpacing) },
                            isDayPickerVisible && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CalendarDay__WEBPACK_IMPORTED_MODULE_3__["CalendarDay"], { selectedDate: selectedDate, navigatedDate: navigatedDayDate, today: this.props.today, onSelectDate: this._onSelectDate, onNavigateDate: this._onNavigateDayDate, onDismiss: this.props.onDismiss, firstDayOfWeek: firstDayOfWeek, dateRangeType: dateRangeType, autoNavigateOnSelection: autoNavigateOnSelection, strings: strings, onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, showWeekNumbers: this.props.showWeekNumbers, firstWeekOfYear: this.props.firstWeekOfYear, dateTimeFormatter: this.props.dateTimeFormatter, showSixWeeksByDefault: this.props.showSixWeeksByDefault, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, workWeekDays: this.props.workWeekDays, componentRef: this._dayPicker, showCloseButton: showCloseButton, allFocusable: allFocusable })),
                            isDayPickerVisible && isMonthPickerVisible && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: styles.divider }),
                            isMonthPickerVisible && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CalendarMonth__WEBPACK_IMPORTED_MODULE_4__["CalendarMonth"], { navigatedDate: navigatedMonthDate, selectedDate: navigatedDayDate, strings: strings, onNavigateDate: this._onNavigateMonthDate, today: this.props.today, highlightCurrentMonth: highlightCurrentMonth, highlightSelectedMonth: highlightSelectedMonth, onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, dateTimeFormatter: this.props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: this._monthPicker, yearPickerHidden: yearPickerHidden || showMonthPickerAsOverlay })),
                            showGoToToday && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { role: "button", className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_6__["css"])('ms-DatePicker-goToday js-goToday', styles.goToday, (_a = {},
                                    _a[styles.goTodayInlineMonth] = isMonthPickerVisible,
                                    _a[styles.goToTodayIsDisabled] = !goTodayEnabled,
                                    _a)), onClick: this._onGotoTodayClick, onKeyDown: this._onGotoTodayKeyDown, tabIndex: 0, disabled: !goTodayEnabled, type: "button" }, strings.goToToday))))))));
    };
    Calendar.prototype.focus = function () {
        if (this.state.isDayPickerVisible && this._dayPicker.current) {
            this._dayPicker.current.focus();
        }
        else if (this.state.isMonthPickerVisible && this._monthPicker.current) {
            this._monthPicker.current.focus();
        }
    };
    Calendar.defaultProps = {
        onSelectDate: undefined,
        onDismiss: undefined,
        isMonthPickerVisible: true,
        isDayPickerVisible: true,
        showMonthPickerAsOverlay: false,
        value: undefined,
        today: new Date(),
        firstDayOfWeek: _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"].Sunday,
        dateRangeType: _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["DateRangeType"].Day,
        autoNavigateOnSelection: false,
        showGoToToday: true,
        strings: null,
        highlightCurrentMonth: false,
        highlightSelectedMonth: false,
        navigationIcons: iconStrings,
        showWeekNumbers: false,
        firstWeekOfYear: _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_2__["FirstWeekOfYear"].FirstDay,
        dateTimeFormatter: dateTimeFormatterCallbacks,
        showSixWeeksByDefault: false,
        workWeekDays: defaultWorkWeekDays,
        showCloseButton: false,
        allFocusable: false
    };
    return Calendar;
}(_Utilities__WEBPACK_IMPORTED_MODULE_6__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Calendar/Calendar.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "picker", function() { return picker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "holder", function() { return holder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerIsOpened", function() { return pickerIsOpened; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "frame", function() { return frame; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrap", function() { return wrap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "goTodaySpacing", function() { return goTodaySpacing; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayPicker", function() { return dayPicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "header", function() { return header; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "divider", function() { return divider; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthAndYear", function() { return monthAndYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "year", function() { return year; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decade", function() { return decade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "currentYear", function() { return currentYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "currentDecade", function() { return currentDecade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "table", function() { return table; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayWrapper", function() { return dayWrapper; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekday", function() { return weekday; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "day", function() { return day; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "daySelection", function() { return daySelection; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayIsToday", function() { return dayIsToday; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayIsDisabled", function() { return dayIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayIsUnfocused", function() { return dayIsUnfocused; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayIsFocused", function() { return dayIsFocused; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayIsHighlighted", function() { return dayIsHighlighted; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerIsFocused", function() { return pickerIsFocused; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayDisabled", function() { return dayDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayBackground", function() { return dayBackground; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayHover", function() { return dayHover; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dayPress", function() { return dayPress; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekBackground", function() { return weekBackground; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showWeekNumbers", function() { return showWeekNumbers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekNumbers", function() { return weekNumbers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekIsHighlighted", function() { return weekIsHighlighted; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showWeekNumbersRTL", function() { return showWeekNumbersRTL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthComponents", function() { return monthComponents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearComponents", function() { return yearComponents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decadeComponents", function() { return decadeComponents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closeButton", function() { return closeButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevMonth", function() { return prevMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextMonth", function() { return nextMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevYear", function() { return prevYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextYear", function() { return nextYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevDecade", function() { return prevDecade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextDecade", function() { return nextDecade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevMonthIsDisabled", function() { return prevMonthIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextMonthIsDisabled", function() { return nextMonthIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevYearIsDisabled", function() { return prevYearIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextYearIsDisabled", function() { return nextYearIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevDecadeIsDisabled", function() { return prevDecadeIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextDecadeIsDisabled", function() { return nextDecadeIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "headerToggleView", function() { return headerToggleView; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "optionGrid", function() { return optionGrid; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthOption", function() { return monthOption; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearOption", function() { return yearOption; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHighlighted", function() { return isHighlighted; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthOptionIsDisabled", function() { return monthOptionIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearOptionIsDisabled", function() { return yearOptionIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "goToday", function() { return goToday; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "goToTodayIsDisabled", function() { return goToTodayIsDisabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "goTodayInlineMonth", function() { return goTodayInlineMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPickingYears", function() { return isPickingYears; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthPicker", function() { return monthPicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearPicker", function() { return yearPicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthPickerVisible", function() { return monthPickerVisible; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toggleMonthView", function() { return toggleMonthView; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calendarsInline", function() { return calendarsInline; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthPickerOnly", function() { return monthPickerOnly; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthPickerAsOverlay", function() { return monthPickerAsOverlay; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "holderWithButton", function() { return holderWithButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthIsHighlighted", function() { return monthIsHighlighted; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthIsCurrentMonth", function() { return monthIsCurrentMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearIsHighlighted", function() { return yearIsHighlighted; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yearIsCurrentYear", function() { return yearIsCurrentYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "topLeftCornerDate", function() { return topLeftCornerDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "topRightCornerDate", function() { return topRightCornerDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bottomLeftCornerDate", function() { return bottomLeftCornerDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bottomRightCornerDate", function() { return bottomRightCornerDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "weekSelection", function() { return weekSelection; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "monthSelection", function() { return monthSelection; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "topDate", function() { return topDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rightDate", function() { return rightDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bottomDate", function() { return bottomDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "leftdate", function() { return leftdate; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".root_fcec416d{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:0}.root_fcec416d *{overflow:visible}.root_fcec416d *::-moz-focus-inner{border:0}.root_fcec416d *{outline:transparent}.root_fcec416d *{position:relative}.ms-Fabric--isFocusVisible .root_fcec416d *:focus:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:1px solid " }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": "}.picker_fcec416d{color:" }, { "theme": "black", "defaultValue": "#000000" }, { "rawString": ";font-size:14px;position:relative}html[dir='ltr'] .picker_fcec416d{text-align:left}html[dir='rtl'] .picker_fcec416d{text-align:right}.holder_fcec416d{-webkit-overflow-scrolling:touch;-webkit-box-sizing:border-box;box-sizing:border-box;display:none}.picker_fcec416d.pickerIsOpened_fcec416d .holder_fcec416d{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block}.pickerIsOpened_fcec416d{position:relative}.frame_fcec416d{position:relative}.wrap_fcec416d{min-height:212px;padding:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:content-box;box-sizing:content-box}.wrap_fcec416d.goTodaySpacing_fcec416d{min-height:228px}.dayPicker_fcec416d{display:block}.header_fcec416d{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:28px;line-height:44px;width:100%}.divider_fcec416d{top:0;margin-top:-12px;margin-bottom:-12px}html[dir='ltr'] .divider_fcec416d{border-right:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}html[dir='rtl'] .divider_fcec416d{border-left:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}.monthAndYear_fcec416d,.year_fcec416d,.decade_fcec416d{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:14px;font-weight:400;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";font-weight:600;padding:0 5px}.monthAndYear_fcec416d:hover,.currentYear_fcec416d:hover,.currentDecade_fcec416d:hover{cursor:default}.table_fcec416d{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;margin-top:4px;width:197px}.table_fcec416d td{margin:0;padding:0}.dayWrapper_fcec416d,.weekday_fcec416d{width:28px;height:28px;padding:0;line-height:28px;font-size:12px;font-size:15px;font-weight:400;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:default}.dayWrapper_fcec416d *::-moz-focus-inner,.weekday_fcec416d *::-moz-focus-inner{border:0}.dayWrapper_fcec416d *,.weekday_fcec416d *{outline:transparent}.dayWrapper_fcec416d *,.weekday_fcec416d *{position:relative}.ms-Fabric--isFocusVisible .dayWrapper_fcec416d *:focus:after,.ms-Fabric--isFocusVisible .weekday_fcec416d *:focus:after{content:'';position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;border:1px solid " }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": "}.day_fcec416d{width:24px;height:24px;border-radius:2px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:none;padding:0;background-color:transparent;line-height:100%;font-size:inherit;color:inherit;font-weight:inherit}@media screen and (-ms-high-contrast: active){.daySelection_fcec416d .day_fcec416d:hover,.daySelection_fcec416d .day_fcec416d:active{outline:1px solid highlight}}@media screen and (-ms-high-contrast: active){.daySelection_fcec416d .day_fcec416d:active{color:highlight}}.dayIsToday_fcec416d,.dayIsToday_fcec416d:hover{position:relative;background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.dayIsToday_fcec416d,.dayIsToday_fcec416d:hover{background-color:highlight;border-radius:2px}}@media screen and (-ms-high-contrast: active){.dayIsToday_fcec416d span,.dayIsToday_fcec416d:hover span{-ms-high-contrast-adjust:none;color:window}}.dayIsToday_fcec416d:hover,.dayIsToday_fcec416d:hover:hover{border-radius:0px}.dayIsDisabled_fcec416d:before{border-top-color:" }, { "theme": "neutralTertiary", "defaultValue": "#a19f9d" }, { "rawString": "}.dayIsUnfocused_fcec416d{color:" }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": ";font-weight:400}.dayIsFocused_fcec416d:hover,.dayIsUnfocused_fcec416d:hover{cursor:pointer;background:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.daySelection_fcec416d.dayIsHighlighted_fcec416d:hover,.pickerIsFocused_fcec416d .dayIsHighlighted_fcec416d.daySelection_fcec416d{cursor:pointer}@media screen and (-ms-high-contrast: active){.daySelection_fcec416d.dayIsHighlighted_fcec416d:hover,.pickerIsFocused_fcec416d .dayIsHighlighted_fcec416d.daySelection_fcec416d{border:2px solid Highlight}.daySelection_fcec416d.dayIsHighlighted_fcec416d:hover :not(.dayIsToday_fcec416d) span,.pickerIsFocused_fcec416d .dayIsHighlighted_fcec416d.daySelection_fcec416d :not(.dayIsToday_fcec416d) span{color:Highlight}}@media screen and (-ms-high-contrast: active){.dayIsHighlighted_fcec416d button.dayIsToday_fcec416d{border-radius:0px}}@media screen and (-ms-high-contrast: active){.dayIsHighlighted_fcec416d button.dayIsToday_fcec416d span{color:Window}}.dayIsFocused_fcec416d:active,.dayIsHighlighted_fcec416d{background:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.dayIsFocused_fcec416d:active.day_fcec416d,.dayIsHighlighted_fcec416d.day_fcec416d{color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";font-weight:600}.dayIsHighlighted_fcec416d.dayDisabled_fcec416d,.dayIsHighlighted_fcec416d.dayDisabled_fcec416d:hover{background:" }, { "theme": "neutralTertiary", "defaultValue": "#a19f9d" }, { "rawString": "}.dayBackground_fcec416d,.dayBackground_fcec416d:hover,.dayBackground_fcec416d:active{border-radius:2px}.dayHover_fcec416d,.dayHover_fcec416d:hover{cursor:pointer;background:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.dayPress_fcec416d,.dayPress_fcec416d:hover{cursor:pointer;font-weight:600;background:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.dayPress_fcec416d .dayIsToday_fcec416d,.dayPress_fcec416d:hover .dayIsToday_fcec416d{background:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.dayIsUnfocused_fcec416d:active,.dayIsFocused_fcec416d:active,.dayIsHighlighted_fcec416d,.dayIsHighlighted_fcec416d:hover,.dayIsHighlighted_fcec416d:active,.weekBackground_fcec416d,.weekBackground_fcec416d:hover,.weekBackground_fcec416d:active{background:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";font-weight:600}.dayIsToday_fcec416d,.pickerIsFocused_fcec416d .dayIsToday_fcec416d,.dayIsToday_fcec416d.day_fcec416d:active{position:relative;color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": ";font-weight:600;background:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.showWeekNumbers_fcec416d .weekNumbers_fcec416d{border-right:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";-webkit-box-sizing:border-box;box-sizing:border-box;width:28px;padding:0}.showWeekNumbers_fcec416d .weekNumbers_fcec416d .dayWrapper_fcec416d{color:" }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": "}.showWeekNumbers_fcec416d .weekNumbers_fcec416d .dayWrapper_fcec416d.weekIsHighlighted_fcec416d{color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.showWeekNumbers_fcec416d .table_fcec416d{width:225px}.showWeekNumbers_fcec416d .table_fcec416d .dayWrapper_fcec416d,.showWeekNumbers_fcec416d .table_fcec416d .weekday_fcec416d{width:30px}.showWeekNumbersRTL_fcec416d .weekNumbers_fcec416d{border-left:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";-webkit-box-sizing:border-box;box-sizing:border-box}.showWeekNumbersRTL_fcec416d .weekNumbers_fcec416d .dayWrapper_fcec416d{color:" }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": "}.showWeekNumbersRTL_fcec416d .weekNumbers_fcec416d .dayWrapper_fcec416d.weekIsHighlighted_fcec416d{color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.showWeekNumbersRTL_fcec416d .table_fcec416d{width:225px}.showWeekNumbersRTL_fcec416d .table_fcec416d .dayWrapper_fcec416d,.showWeekNumbersRTL_fcec416d .table_fcec416d .weekday_fcec416d{width:30px}.monthComponents_fcec416d,.yearComponents_fcec416d,.decadeComponents_fcec416d{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-item-align:end;align-self:flex-end}.closeButton_fcec416d,.prevMonth_fcec416d,.nextMonth_fcec416d,.prevYear_fcec416d,.nextYear_fcec416d,.prevDecade_fcec416d,.nextDecade_fcec416d{width:28px;height:28px;display:block;text-align:center;line-height:28px;text-align:center;font-size:12px;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";border-radius:2px;position:relative;background-color:transparent;border:none;padding:0}.closeButton_fcec416d:hover,.prevMonth_fcec416d:hover,.nextMonth_fcec416d:hover,.prevYear_fcec416d:hover,.nextYear_fcec416d:hover,.prevDecade_fcec416d:hover,.nextDecade_fcec416d:hover{color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": ";cursor:pointer;outline:1px solid transparent}.prevMonthIsDisabled_fcec416d,.nextMonthIsDisabled_fcec416d,.prevYearIsDisabled_fcec416d,.nextYearIsDisabled_fcec416d,.prevDecadeIsDisabled_fcec416d,.nextDecadeIsDisabled_fcec416d{color:" }, { "theme": "neutralTertiaryAlt", "defaultValue": "#c8c6c4" }, { "rawString": ";pointer-events:none}.headerToggleView_fcec416d{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:4px 8px}.headerToggleView_fcec416d:hover{color:" }, { "theme": "black", "defaultValue": "#000000" }, { "rawString": ";cursor:pointer}@media screen and (-ms-high-contrast: active){.headerToggleView_fcec416d:hover{outline:1px solid highlight}}@media screen and (-ms-high-contrast: active){.headerToggleView_fcec416d:hover:active{color:highlight}}.currentYear_fcec416d,.currentDecade_fcec416d{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 5px;font-size:14px;font-weight:400;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";height:28px;line-height:28px;font-weight:600}html[dir='ltr'] .currentYear_fcec416d,html[dir='ltr'] .currentDecade_fcec416d{margin-left:5px}html[dir='rtl'] .currentYear_fcec416d,html[dir='rtl'] .currentDecade_fcec416d{margin-right:5px}.optionGrid_fcec416d{position:relative;height:210px;width:196px;margin:4px 0 0 0}html[dir='rtl'] .optionGrid_fcec416d{margin:4px 0 0 0}.monthOption_fcec416d,.yearOption_fcec416d{width:60px;height:60px;line-height:100%;cursor:pointer;margin:0 10px 10px 0;font-size:13px;font-weight:400;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";text-align:center;border:none;padding:0;background-color:transparent;border-radius:2px}html[dir='ltr'] .monthOption_fcec416d,html[dir='ltr'] .yearOption_fcec416d{float:left}html[dir='rtl'] .monthOption_fcec416d,html[dir='rtl'] .yearOption_fcec416d{float:right}html[dir='rtl'] .monthOption_fcec416d,html[dir='rtl'] .yearOption_fcec416d{margin:0 0 10px 10px}.monthOption_fcec416d:hover,.yearOption_fcec416d:hover{color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": ";background-color:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";outline:1px solid transparent}@media screen and (-ms-high-contrast: active){.monthOption_fcec416d:hover,.yearOption_fcec416d:hover{outline-color:highlight}}@media screen and (-ms-high-contrast: active){.monthOption_fcec416d:active,.yearOption_fcec416d:active{color:highlight}}.monthOption_fcec416d.isHighlighted_fcec416d,.yearOption_fcec416d.isHighlighted_fcec416d{background-color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": "}.dayIsDisabled_fcec416d,.monthOptionIsDisabled_fcec416d,.yearOptionIsDisabled_fcec416d{color:" }, { "theme": "neutralTertiaryAlt", "defaultValue": "#c8c6c4" }, { "rawString": ";pointer-events:none}.goToday_fcec416d{bottom:0;color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": ";cursor:pointer;font-size:12px;font-weight:400;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": ";height:30px;line-height:30px;padding:0 10px;background-color:transparent;border:none;position:absolute !important;-webkit-box-sizing:content-box;box-sizing:content-box}[dir='ltr'] .goToday_fcec416d{right:13px}[dir='rtl'] .goToday_fcec416d{left:13px}.goToday_fcec416d:hover{color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": ";outline:1px solid transparent}@media screen and (-ms-high-contrast: active){.goToday_fcec416d:hover{outline-color:highlight}}.goToday_fcec416d:active{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.goToday_fcec416d:active{color:highlight}}.goToTodayIsDisabled_fcec416d{color:" }, { "theme": "neutralTertiaryAlt", "defaultValue": "#c8c6c4" }, { "rawString": ";pointer-events:none}.goTodayInlineMonth_fcec416d{top:212px}.wrap_fcec416d.goTodaySpacing_fcec416d{padding-bottom:28px}.root_fcec416d.isPickingYears_fcec416d .dayPicker_fcec416d,.root_fcec416d.isPickingYears_fcec416d .monthComponents_fcec416d{display:none}.root_fcec416d.isPickingYears_fcec416d .monthPicker_fcec416d{display:none}.root_fcec416d.isPickingYears_fcec416d .yearPicker_fcec416d{display:block}@media (min-device-width: 460px){.wrap_fcec416d{padding:12px}.dayPicker_fcec416d,.monthPicker_fcec416d{min-height:200px}.header_fcec416d{height:28px;line-height:28px;width:100%}.dayWrapper_fcec416d,.weekday_fcec416d{width:28px;height:28px;line-height:28px;font-size:12px}.closeButton_fcec416d,.prevMonth_fcec416d,.nextMonth_fcec416d,.prevYear_fcec416d,.nextYear_fcec416d,.prevDecade_fcec416d,.nextDecade_fcec416d{font-size:12px;width:28px;height:28px;line-height:28px}.holder_fcec416d{display:inline-block;height:auto;overflow:hidden}.monthAndYear_fcec416d,.year_fcec416d,.decade_fcec416d{font-size:14px;color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.yearComponents_fcec416d{margin-left:1px}.goToday_fcec416d{padding:0 3px}[dir='ltr'] .goToday_fcec416d{right:20px}[dir='rtl'] .goToday_fcec416d{left:20px}.showWeekNumbers_fcec416d .table_fcec416d .dayWrapper_fcec416d,.showWeekNumbers_fcec416d .table_fcec416d .weekday_fcec416d{width:28px}.showWeekNumbersRTL_fcec416d .table_fcec416d .dayWrapper_fcec416d,.showWeekNumbersRTL_fcec416d .table_fcec416d .weekday_fcec416d{width:28px}.monthPickerVisible_fcec416d .wrap_fcec416d{padding:12px}.monthPickerVisible_fcec416d .dayPicker_fcec416d{margin:-10px 0;padding:10px 0}.monthPickerVisible_fcec416d .dayPicker_fcec416d{-webkit-box-sizing:border-box;box-sizing:border-box;width:212px;min-height:200px}.monthPickerVisible_fcec416d .monthPicker_fcec416d{display:block}.monthPickerVisible_fcec416d .optionGrid_fcec416d{height:150px;width:196px}.monthPickerVisible_fcec416d .toggleMonthView_fcec416d{display:none}.monthPickerVisible_fcec416d .currentYear_fcec416d,.monthPickerVisible_fcec416d .currentDecade_fcec416d{font-size:14px;margin:0;height:28px;line-height:28px;display:inline-block}.monthPickerVisible_fcec416d .monthOption_fcec416d,.monthPickerVisible_fcec416d .yearOption_fcec416d{width:40px;height:40px;line-height:100%;font-size:12px;margin:0 12px 16px 0}html[dir='rtl'] .monthPickerVisible_fcec416d .monthOption_fcec416d,html[dir='rtl'] .monthPickerVisible_fcec416d .yearOption_fcec416d{margin:0 0 16px 12px}.monthPickerVisible_fcec416d .monthOption_fcec416d:hover,.monthPickerVisible_fcec416d .yearOption_fcec416d:hover{outline:1px solid transparent}.monthPickerVisible_fcec416d .monthOption_fcec416d:nth-child(4n+4),.monthPickerVisible_fcec416d .yearOption_fcec416d:nth-child(4n+4){margin:0 0px 16px 0}html[dir='rtl'] .monthPickerVisible_fcec416d .monthOption_fcec416d:nth-child(4n+4),html[dir='rtl'] .monthPickerVisible_fcec416d .yearOption_fcec416d:nth-child(4n+4){margin:0 0 16px 0px}.monthPickerVisible_fcec416d .goToday_fcec416d{font-size:12px;height:28px;line-height:28px;padding:0 10px}[dir='ltr'] .monthPickerVisible_fcec416d .goToday_fcec416d{right:8px}[dir='rtl'] .monthPickerVisible_fcec416d .goToday_fcec416d{left:8px}html[dir='ltr'] .monthPickerVisible_fcec416d .goToday_fcec416d{text-align:right}html[dir='rtl'] .monthPickerVisible_fcec416d .goToday_fcec416d{text-align:left}.monthPickerVisible_fcec416d .root_fcec416d.isPickingYears_fcec416d .dayPicker_fcec416d,.monthPickerVisible_fcec416d .root_fcec416d.isPickingYears_fcec416d .monthComponents_fcec416d{display:block}.monthPickerVisible_fcec416d .root_fcec416d.isPickingYears_fcec416d .monthPicker_fcec416d{display:none}.monthPickerVisible_fcec416d .root_fcec416d.isPickingYears_fcec416d .yearPicker_fcec416d{display:block}.calendarsInline_fcec416d .wrap_fcec416d{padding:12px}.calendarsInline_fcec416d .holder_fcec416d{height:auto}html[dir='ltr'] .calendarsInline_fcec416d .table_fcec416d{margin-right:12px}html[dir='rtl'] .calendarsInline_fcec416d .table_fcec416d{margin-left:12px}.calendarsInline_fcec416d .dayPicker_fcec416d{width:auto}html[dir='ltr'] .calendarsInline_fcec416d .monthPicker_fcec416d{margin-left:12px}html[dir='rtl'] .calendarsInline_fcec416d .monthPicker_fcec416d{margin-right:12px}html[dir='ltr'] .calendarsInline_fcec416d .yearPicker_fcec416d{margin-left:12px}html[dir='rtl'] .calendarsInline_fcec416d .yearPicker_fcec416d{margin-right:12px}.calendarsInline_fcec416d .goToday_fcec416d{padding:0 10px}[dir='ltr'] .calendarsInline_fcec416d .goToday_fcec416d{right:14px}[dir='rtl'] .calendarsInline_fcec416d .goToday_fcec416d{left:14px}html[dir='ltr'] .calendarsInline_fcec416d .monthComponents_fcec416d{margin-right:12px}html[dir='rtl'] .calendarsInline_fcec416d .monthComponents_fcec416d{margin-left:12px}.monthPickerOnly_fcec416d .wrap_fcec416d{padding:12px}.monthPickerAsOverlay_fcec416d .wrap_fcec416d{padding-bottom:28px;margin-bottom:6px}.monthPickerAsOverlay_fcec416d .holder_fcec416d{height:240px;min-height:240px}.monthPickerAsOverlay_fcec416d .holderWithButton_fcec416d{padding-top:6px;height:auto}}@media (max-device-width: 459px){.calendarsInline_fcec416d .monthPicker_fcec416d,.calendarsInline_fcec416d .yearPicker_fcec416d{display:none}.yearComponents_fcec416d{margin-top:2px}}.goToday_fcec416d{width:auto}.closeButton_fcec416d,.nextMonth_fcec416d,.prevMonth_fcec416d,.nextYear_fcec416d,.prevYear_fcec416d,.nextDecade_fcec416d,.prevDecade_fcec416d{display:inline-block}.closeButton_fcec416d:hover,.nextMonth_fcec416d:hover,.prevMonth_fcec416d:hover,.nextYear_fcec416d:hover,.prevYear_fcec416d:hover,.nextDecade_fcec416d:hover,.prevDecade_fcec416d:hover{background-color:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.closeButton_fcec416d:hover,.nextMonth_fcec416d:hover,.prevMonth_fcec416d:hover,.nextYear_fcec416d:hover,.prevYear_fcec416d:hover,.nextDecade_fcec416d:hover,.prevDecade_fcec416d:hover{outline:1px solid highlight}}.closeButton_fcec416d:active,.nextMonth_fcec416d:active,.prevMonth_fcec416d:active,.nextYear_fcec416d:active,.prevYear_fcec416d:active,.nextDecade_fcec416d:active,.prevDecade_fcec416d:active{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.closeButton_fcec416d:active,.nextMonth_fcec416d:active,.prevMonth_fcec416d:active,.nextYear_fcec416d:active,.prevYear_fcec416d:active,.nextDecade_fcec416d:active,.prevDecade_fcec416d:active{color:highlight}}.monthIsHighlighted_fcec416d{font-weight:600;background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.monthIsHighlighted_fcec416d.monthOption_fcec416d:hover{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.monthIsHighlighted_fcec416d{color:highlight;border:2px solid highlight;border-radius:2px}.monthIsHighlighted_fcec416d:hover{outline:0 !important}}.monthIsCurrentMonth_fcec416d{font-weight:600;color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": ";background-color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.monthIsCurrentMonth_fcec416d.monthOption_fcec416d:hover{font-weight:600;color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": ";background-color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.monthOption_fcec416d:active{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.yearIsHighlighted_fcec416d{font-weight:600;background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}.yearIsHighlighted_fcec416d.yearOption_fcec416d:hover{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.yearIsCurrentYear_fcec416d{font-weight:600;color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": ";background-color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.yearIsCurrentYear_fcec416d.yearOption_fcec416d:hover{font-weight:600;color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": ";background-color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.yearOption_fcec416d:active{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.topLeftCornerDate_fcec416d{border-top-left-radius:2px}.topRightCornerDate_fcec416d{border-top-right-radius:2px}.bottomLeftCornerDate_fcec416d{border-bottom-left-radius:2px}.bottomRightCornerDate_fcec416d{border-bottom-right-radius:2px}@media screen and (-ms-high-contrast: active){.weekBackground_fcec416d{border-top:1px solid highlight;border-bottom:1px solid highlight}.weekBackground_fcec416d.bottomRightCornerDate_fcec416d.topRightCornerDate_fcec416d{border-right:1px solid highlight;border-left:none;padding-left:1px}.weekBackground_fcec416d.bottomLeftCornerDate_fcec416d.topLeftCornerDate_fcec416d{border-left:1px solid highlight;border-right:none;padding-right:1px}.weekBackground_fcec416d :not(.dayIsToday_fcec416d) span{color:highlight}.weekSelection_fcec416d.dayHover_fcec416d{border-top:1px solid highlight;border-bottom:1px solid highlight}.weekSelection_fcec416d.dayHover_fcec416d.bottomLeftCornerDate_fcec416d.topLeftCornerDate_fcec416d{border-left:1px solid highlight;padding-right:1px}.weekSelection_fcec416d.dayHover_fcec416d.bottomRightCornerDate_fcec416d.topRightCornerDate_fcec416d{border-right:1px solid highlight;padding-left:1px}.weekSelection_fcec416d.dayHover_fcec416d.dayPress_fcec416d :not(.dayIsToday_fcec416d) span{color:highlight}.monthSelection_fcec416d.dayHover_fcec416d.bottomLeftCornerDate_fcec416d,.monthSelection_fcec416d.dayHover_fcec416d.topLeftCornerDate_fcec416d{border-left:1px solid highlight;padding-right:1px}.monthSelection_fcec416d.dayHover_fcec416d.bottomRightCornerDate_fcec416d,.monthSelection_fcec416d.dayHover_fcec416d.topRightCornerDate_fcec416d{border-right:1px solid highlight;padding-left:1px}.monthSelection_fcec416d.dayIsFocused_fcec416d.dayHover_fcec416d.topDate_fcec416d,.monthSelection_fcec416d.dayIsUnfocused_fcec416d.dayHover_fcec416d.topDate_fcec416d{border-top:1px solid highlight;padding-bottom:1px}.monthSelection_fcec416d.dayIsFocused_fcec416d.dayHover_fcec416d.rightDate_fcec416d,.monthSelection_fcec416d.dayIsUnfocused_fcec416d.dayHover_fcec416d.rightDate_fcec416d{border-right:1px solid highlight;padding-left:1px}.monthSelection_fcec416d.dayIsFocused_fcec416d.dayHover_fcec416d.bottomDate_fcec416d,.monthSelection_fcec416d.dayIsUnfocused_fcec416d.dayHover_fcec416d.bottomDate_fcec416d{border-bottom:1px solid highlight;padding-top:1px}.monthSelection_fcec416d.dayIsFocused_fcec416d.dayHover_fcec416d.leftdate_fcec416d,.monthSelection_fcec416d.dayIsUnfocused_fcec416d.dayHover_fcec416d.leftdate_fcec416d{border-left:1px solid highlight;padding-right:1px}.monthSelection_fcec416d.dayIsFocused_fcec416d.dayHover_fcec416d.dayPress_fcec416d :not(.dayIsToday_fcec416d) span,.monthSelection_fcec416d.dayIsUnfocused_fcec416d.dayHover_fcec416d.dayPress_fcec416d :not(.dayIsToday_fcec416d) span{color:highlight}}\n" }]);
var root = "root_fcec416d";
var picker = "picker_fcec416d";
var holder = "holder_fcec416d";
var pickerIsOpened = "pickerIsOpened_fcec416d";
var frame = "frame_fcec416d";
var wrap = "wrap_fcec416d";
var goTodaySpacing = "goTodaySpacing_fcec416d";
var dayPicker = "dayPicker_fcec416d";
var header = "header_fcec416d";
var divider = "divider_fcec416d";
var monthAndYear = "monthAndYear_fcec416d";
var year = "year_fcec416d";
var decade = "decade_fcec416d";
var currentYear = "currentYear_fcec416d";
var currentDecade = "currentDecade_fcec416d";
var table = "table_fcec416d";
var dayWrapper = "dayWrapper_fcec416d";
var weekday = "weekday_fcec416d";
var day = "day_fcec416d";
var daySelection = "daySelection_fcec416d";
var dayIsToday = "dayIsToday_fcec416d";
var dayIsDisabled = "dayIsDisabled_fcec416d";
var dayIsUnfocused = "dayIsUnfocused_fcec416d";
var dayIsFocused = "dayIsFocused_fcec416d";
var dayIsHighlighted = "dayIsHighlighted_fcec416d";
var pickerIsFocused = "pickerIsFocused_fcec416d";
var dayDisabled = "dayDisabled_fcec416d";
var dayBackground = "dayBackground_fcec416d";
var dayHover = "dayHover_fcec416d";
var dayPress = "dayPress_fcec416d";
var weekBackground = "weekBackground_fcec416d";
var showWeekNumbers = "showWeekNumbers_fcec416d";
var weekNumbers = "weekNumbers_fcec416d";
var weekIsHighlighted = "weekIsHighlighted_fcec416d";
var showWeekNumbersRTL = "showWeekNumbersRTL_fcec416d";
var monthComponents = "monthComponents_fcec416d";
var yearComponents = "yearComponents_fcec416d";
var decadeComponents = "decadeComponents_fcec416d";
var closeButton = "closeButton_fcec416d";
var prevMonth = "prevMonth_fcec416d";
var nextMonth = "nextMonth_fcec416d";
var prevYear = "prevYear_fcec416d";
var nextYear = "nextYear_fcec416d";
var prevDecade = "prevDecade_fcec416d";
var nextDecade = "nextDecade_fcec416d";
var prevMonthIsDisabled = "prevMonthIsDisabled_fcec416d";
var nextMonthIsDisabled = "nextMonthIsDisabled_fcec416d";
var prevYearIsDisabled = "prevYearIsDisabled_fcec416d";
var nextYearIsDisabled = "nextYearIsDisabled_fcec416d";
var prevDecadeIsDisabled = "prevDecadeIsDisabled_fcec416d";
var nextDecadeIsDisabled = "nextDecadeIsDisabled_fcec416d";
var headerToggleView = "headerToggleView_fcec416d";
var optionGrid = "optionGrid_fcec416d";
var monthOption = "monthOption_fcec416d";
var yearOption = "yearOption_fcec416d";
var isHighlighted = "isHighlighted_fcec416d";
var monthOptionIsDisabled = "monthOptionIsDisabled_fcec416d";
var yearOptionIsDisabled = "yearOptionIsDisabled_fcec416d";
var goToday = "goToday_fcec416d";
var goToTodayIsDisabled = "goToTodayIsDisabled_fcec416d";
var goTodayInlineMonth = "goTodayInlineMonth_fcec416d";
var isPickingYears = "isPickingYears_fcec416d";
var monthPicker = "monthPicker_fcec416d";
var yearPicker = "yearPicker_fcec416d";
var monthPickerVisible = "monthPickerVisible_fcec416d";
var toggleMonthView = "toggleMonthView_fcec416d";
var calendarsInline = "calendarsInline_fcec416d";
var monthPickerOnly = "monthPickerOnly_fcec416d";
var monthPickerAsOverlay = "monthPickerAsOverlay_fcec416d";
var holderWithButton = "holderWithButton_fcec416d";
var monthIsHighlighted = "monthIsHighlighted_fcec416d";
var monthIsCurrentMonth = "monthIsCurrentMonth_fcec416d";
var yearIsHighlighted = "yearIsHighlighted_fcec416d";
var yearIsCurrentYear = "yearIsCurrentYear_fcec416d";
var topLeftCornerDate = "topLeftCornerDate_fcec416d";
var topRightCornerDate = "topRightCornerDate_fcec416d";
var bottomLeftCornerDate = "bottomLeftCornerDate_fcec416d";
var bottomRightCornerDate = "bottomRightCornerDate_fcec416d";
var weekSelection = "weekSelection_fcec416d";
var monthSelection = "monthSelection_fcec416d";
var topDate = "topDate_fcec416d";
var rightDate = "rightDate_fcec416d";
var bottomDate = "bottomDate_fcec416d";
var leftdate = "leftdate_fcec416d";


/***/ }),

/***/ "./lib/components/Calendar/Calendar.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/dateValues/DateValues.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"]; });





/***/ }),

/***/ "./lib/components/Calendar/CalendarDay.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalendarDay", function() { return CalendarDay; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/dateValues/DateValues.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/dateMath/DateMath.js");
/* harmony import */ var _Calendar_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Calendar/Calendar.scss.js");








var styles = _Calendar_scss__WEBPACK_IMPORTED_MODULE_7__;
var DAYS_IN_WEEK = 7;
var CalendarDay = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarDay, _super);
    function CalendarDay(props) {
        var _this = _super.call(this, props) || this;
        _this.days = {};
        _this._onKeyDown = function (callback, ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                callback();
            }
        };
        _this._onDayKeyDown = function (originalDate, weekIndex, dayIndex) {
            return function (ev) {
                if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                    _this._onSelectDate(originalDate, ev);
                }
                else {
                    _this._navigateMonthEdge(ev, originalDate, weekIndex, dayIndex);
                }
            };
        };
        _this._onDayMouseDown = function (originalDate, weekIndex, dayIndex, dateRangeType) {
            return function (ev) {
                // set the press styling
                if (dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month) {
                    _this._applyFunctionToDayRefs(function (ref, day) {
                        if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {
                            ref.classList.add(styles.dayPress);
                        }
                    });
                }
                else {
                    // week or work week view
                    _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {
                        if (ref && dayWeekIndex === weekIndex && day.isInBounds) {
                            ref.classList.add(styles.dayPress);
                            ref.classList.add(styles.dayIsHighlighted);
                        }
                        else if (ref) {
                            ref.classList.remove(styles.dayIsHighlighted);
                        }
                    });
                }
            };
        };
        _this._onDayMouseUp = function (originalDate, weekIndex, dayIndex, dateRangeType) {
            return function (ev) {
                // remove press styling
                if (dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month) {
                    _this._applyFunctionToDayRefs(function (ref, day) {
                        if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {
                            ref.classList.remove(styles.dayPress);
                        }
                    });
                }
                else {
                    // week or work week view
                    _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {
                        if (ref && dayWeekIndex === weekIndex && day.isInBounds) {
                            ref.classList.remove(styles.dayPress);
                        }
                    });
                }
            };
        };
        _this._onDayMouseOver = function (originalDate, weekIndex, dayIndex, dateRangeType) {
            return function (ev) {
                // set the hover styling on every day in the same month
                if (dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month) {
                    _this._applyFunctionToDayRefs(function (ref, day) {
                        if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {
                            ref.classList.add(styles.dayHover);
                        }
                    });
                }
                else {
                    // week or work week view
                    _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {
                        if (ref && dayWeekIndex === weekIndex && day.isInBounds) {
                            ref.classList.add(styles.dayHover);
                        }
                    });
                }
            };
        };
        _this._onDayMouseLeave = function (originalDate, weekIndex, dayIndex, dateRangeType) {
            return function (ev) {
                // remove the hover and pressed styling
                if (dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month) {
                    _this._applyFunctionToDayRefs(function (ref, day) {
                        if (ref && day.originalDate.getMonth() === originalDate.getMonth() && day.isInBounds) {
                            ref.classList.remove(styles.dayHover);
                        }
                    });
                }
                else {
                    // week or work week view
                    _this._applyFunctionToDayRefs(function (ref, day, dayWeekIndex) {
                        if (ref && dayWeekIndex === weekIndex && day.isInBounds) {
                            ref.classList.remove(styles.dayHover);
                        }
                    });
                }
            };
        };
        _this._onTableMouseLeave = function (ev) {
            if (ev.target.contains &&
                ev.relatedTarget &&
                ev.relatedTarget.contains &&
                ev.target.contains(ev.relatedTarget)) {
                return;
            }
            _this._applyFunctionToDayRefs(function (ref, day) {
                if (ref) {
                    ref.classList.remove(styles.dayHover);
                    ref.classList.remove(styles.dayPress);
                }
            });
        };
        _this._onTableMouseUp = function (ev) {
            if (ev.target.contains &&
                ev.relatedTarget &&
                ev.relatedTarget.contains &&
                ev.target.contains(ev.relatedTarget)) {
                return;
            }
            _this._applyFunctionToDayRefs(function (ref, day) {
                if (ref) {
                    ref.classList.remove(styles.dayPress);
                }
            });
        };
        _this._onSelectDate = function (selectedDate, ev) {
            var _a = _this.props, onSelectDate = _a.onSelectDate, dateRangeType = _a.dateRangeType, firstDayOfWeek = _a.firstDayOfWeek, navigatedDate = _a.navigatedDate, autoNavigateOnSelection = _a.autoNavigateOnSelection, minDate = _a.minDate, maxDate = _a.maxDate, workWeekDays = _a.workWeekDays;
            if (ev) {
                ev.stopPropagation();
            }
            var dateRange = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getDateRangeArray"])(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays);
            if (dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day) {
                dateRange = _this._getBoundedDateRange(dateRange, minDate, maxDate);
            }
            dateRange = dateRange.filter(function (d) {
                return !_this._getIsRestrictedDate(d);
            });
            if (onSelectDate) {
                onSelectDate(selectedDate, dateRange);
            }
            // Navigate to next or previous month if needed
            if (autoNavigateOnSelection && selectedDate.getMonth() !== navigatedDate.getMonth()) {
                var compareResult = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(selectedDate, navigatedDate);
                if (compareResult < 0) {
                    _this._onSelectPrevMonth();
                }
                else if (compareResult > 0) {
                    _this._onSelectNextMonth();
                }
            }
        };
        _this._onSelectNextMonth = function () {
            _this.props.onNavigateDate(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addMonths"])(_this.props.navigatedDate, 1), false);
        };
        _this._onSelectPrevMonth = function () {
            _this.props.onNavigateDate(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addMonths"])(_this.props.navigatedDate, -1), false);
        };
        _this._onClose = function () {
            if (_this.props.onDismiss) {
                _this.props.onDismiss();
            }
        };
        _this._onHeaderSelect = function () {
            var onHeaderSelect = _this.props.onHeaderSelect;
            if (onHeaderSelect) {
                onHeaderSelect(true);
            }
        };
        _this._onHeaderKeyDown = function (ev) {
            var onHeaderSelect = _this.props.onHeaderSelect;
            if (onHeaderSelect && (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space)) {
                onHeaderSelect(true);
            }
        };
        _this._onPrevMonthKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onKeyDown(_this._onSelectPrevMonth, ev);
            }
        };
        _this._onNextMonthKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onKeyDown(_this._onSelectNextMonth, ev);
            }
        };
        _this._onCloseButtonKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onKeyDown(_this._onClose, ev);
            }
        };
        _this.state = {
            activeDescendantId: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('DatePickerDay-active'),
            weeks: _this._getWeeks(props)
        };
        _this._onSelectNextMonth = _this._onSelectNextMonth.bind(_this);
        _this._onSelectPrevMonth = _this._onSelectPrevMonth.bind(_this);
        _this._onClose = _this._onClose.bind(_this);
        return _this;
    }
    // tslint:disable-next-line function-name
    CalendarDay.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        this.setState({
            weeks: this._getWeeks(nextProps)
        });
    };
    CalendarDay.prototype.render = function () {
        var _a, _b;
        var _this = this;
        var _c = this.state, activeDescendantId = _c.activeDescendantId, weeks = _c.weeks;
        var _d = this.props, firstDayOfWeek = _d.firstDayOfWeek, strings = _d.strings, navigatedDate = _d.navigatedDate, selectedDate = _d.selectedDate, dateRangeType = _d.dateRangeType, navigationIcons = _d.navigationIcons, showWeekNumbers = _d.showWeekNumbers, firstWeekOfYear = _d.firstWeekOfYear, dateTimeFormatter = _d.dateTimeFormatter, minDate = _d.minDate, maxDate = _d.maxDate, showCloseButton = _d.showCloseButton, allFocusable = _d.allFocusable;
        var dayPickerId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('DatePickerDay-dayPicker');
        var monthAndYearId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('DatePickerDay-monthAndYear');
        var leftNavigationIcon = navigationIcons.leftNavigation;
        var rightNavigationIcon = navigationIcons.rightNavigation;
        var closeNavigationIcon = navigationIcons.closeIcon;
        var weekNumbers = showWeekNumbers ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getWeekNumbersInMonth"])(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate) : null;
        var selectedDateWeekNumber = showWeekNumbers ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getWeekNumber"])(selectedDate, firstDayOfWeek, firstWeekOfYear) : undefined;
        // When the month is highlighted get the corner dates so that styles can be added to them
        var weekCorners = this._getWeekCornerStyles(weeks, dateRangeType);
        // determine if previous/next months are in bounds
        var prevMonthInBounds = minDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(minDate, Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getMonthStart"])(navigatedDate)) < 0 : true;
        var nextMonthInBounds = maxDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getMonthEnd"])(navigatedDate), maxDate) < 0 : true;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-dayPicker', styles.dayPicker, showWeekNumbers && 'ms-DatePicker-showWeekNumbers' && (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? styles.showWeekNumbersRTL : styles.showWeekNumbers)), id: dayPickerId },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-header', styles.header) },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true", id: monthAndYearId, className: styles.monthAndYear }, this.props.onHeaderSelect ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-monthAndYear js-showMonthPicker', styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, "aria-label": dateTimeFormatter.formatMonthYear(navigatedDate, strings), role: "button", tabIndex: 0 }, dateTimeFormatter.formatMonthYear(navigatedDate, strings))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-monthAndYear', styles.monthAndYear) }, dateTimeFormatter.formatMonthYear(navigatedDate, strings)))),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-monthComponents', styles.monthComponents) },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-navContainer', styles.navContainer) },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-prevMonth js-prevMonth', styles.prevMonth, (_a = {},
                                _a['ms-DatePicker-prevMonth--disabled ' + styles.prevMonthIsDisabled] = !prevMonthInBounds,
                                _a)), disabled: !allFocusable && !prevMonthInBounds, "aria-disabled": !prevMonthInBounds, onClick: prevMonthInBounds ? this._onSelectPrevMonth : undefined, onKeyDown: prevMonthInBounds ? this._onPrevMonthKeyDown : undefined, "aria-controls": dayPickerId, title: strings.prevMonthAriaLabel
                                ? strings.prevMonthAriaLabel + ' ' + strings.months[Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addMonths"])(navigatedDate, -1).getMonth()]
                                : undefined, role: "button", type: "button" },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: leftNavigationIcon })),
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-nextMonth js-nextMonth', styles.nextMonth, (_b = {},
                                _b['ms-DatePicker-nextMonth--disabled ' + styles.nextMonthIsDisabled] = !nextMonthInBounds,
                                _b)), disabled: !allFocusable && !nextMonthInBounds, "aria-disabled": !nextMonthInBounds, onClick: nextMonthInBounds ? this._onSelectNextMonth : undefined, onKeyDown: nextMonthInBounds ? this._onNextMonthKeyDown : undefined, "aria-controls": dayPickerId, title: strings.nextMonthAriaLabel
                                ? strings.nextMonthAriaLabel + ' ' + strings.months[Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addMonths"])(navigatedDate, 1).getMonth()]
                                : undefined, role: "button", type: "button" },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: rightNavigationIcon })),
                        showCloseButton && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-closeButton js-closeButton', styles.closeButton), onClick: this._onClose, onKeyDown: this._onCloseButtonKeyDown, title: strings.closeButtonAriaLabel, role: "button", type: "button" },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: closeNavigationIcon })))))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZone"], null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("table", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-table', styles.table), "aria-readonly": "true", "aria-multiselectable": "false", "aria-labelledby": monthAndYearId, "aria-activedescendant": activeDescendantId, role: "grid" },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("thead", null,
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tr", null,
                            showWeekNumbers && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("th", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-weekday', styles.weekday) }),
                            strings.shortDays.map(function (val, index) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("th", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-weekday', styles.weekday), role: "columnheader", scope: "col", key: index, title: strings.days[(index + firstDayOfWeek) % DAYS_IN_WEEK], "aria-label": strings.days[(index + firstDayOfWeek) % DAYS_IN_WEEK], "data-is-focusable": allFocusable ? true : undefined }, strings.shortDays[(index + firstDayOfWeek) % DAYS_IN_WEEK])); }))),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tbody", { onMouseLeave: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day ? this._onTableMouseLeave : undefined, onMouseUp: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day ? this._onTableMouseUp : undefined }, weeks.map(function (week, weekIndex) {
                        var _a;
                        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tr", { key: weekNumbers ? weekNumbers[weekIndex] : weekIndex },
                            showWeekNumbers && weekNumbers && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("th", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-weekNumbers', 'ms-DatePicker-weekday', styles.weekday, styles.weekNumbers), key: weekIndex, title: weekNumbers && strings.weekNumberFormatString && Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(strings.weekNumberFormatString, weekNumbers[weekIndex]), "aria-label": weekNumbers && strings.weekNumberFormatString && Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(strings.weekNumberFormatString, weekNumbers[weekIndex]), scope: "row" },
                                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-day', styles.day, (_a = {},
                                        _a['ms-DatePicker-week--highlighted ' + styles.weekIsHighlighted] = selectedDateWeekNumber === weekNumbers[weekIndex],
                                        _a)) },
                                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", null, weekNumbers[weekIndex])))),
                            week.map(function (day, dayIndex) {
                                var _a, _b;
                                var isNavigatedDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDates"])(navigatedDate, day.originalDate);
                                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", { key: day.key, onClick: day.isInBounds ? day.onSelected : undefined, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(styles.dayWrapper, 'ms-DatePicker-day', _this._getHighlightedCornerStyle(weekCorners, dayIndex, weekIndex), (_a = {},
                                        _a['ms-DatePicker-weekBackground ' + styles.weekBackground] = day.isSelected && (dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Week || dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].WorkWeek),
                                        _a['ms-DatePicker-dayBackground ' + styles.dayBackground] = dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day,
                                        _a['ms-DatePicker-day--highlighted ' + styles.dayIsHighlighted] = day.isSelected && dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day,
                                        _a['ms-DatePicker-day--infocus ' + styles.dayIsFocused] = day.isInBounds && day.isInMonth,
                                        _a['ms-DatePicker-day--outfocus ' + styles.dayIsUnfocused] = day.isInBounds && !day.isInMonth,
                                        _a[styles.daySelection] = dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day,
                                        _a[styles.weekSelection] = dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Week || dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].WorkWeek,
                                        _a[styles.monthSelection] = dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month,
                                        _a)), ref: function (element) { return _this._setDayCellRef(element, day, isNavigatedDate); }, onMouseOver: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day && day.isInBounds
                                        ? _this._onDayMouseOver(day.originalDate, weekIndex, dayIndex, dateRangeType)
                                        : undefined, onMouseLeave: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day && day.isInBounds
                                        ? _this._onDayMouseLeave(day.originalDate, weekIndex, dayIndex, dateRangeType)
                                        : undefined, onMouseDown: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day && day.isInBounds
                                        ? _this._onDayMouseDown(day.originalDate, weekIndex, dayIndex, dateRangeType)
                                        : undefined, onMouseUp: dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day && day.isInBounds
                                        ? _this._onDayMouseUp(day.originalDate, weekIndex, dayIndex, dateRangeType)
                                        : undefined, role: 'gridcell' },
                                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { key: day.key + 'button', onClick: day.isInBounds ? day.onSelected : undefined, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(styles.day, 'ms-DatePicker-day-button', (_b = {},
                                            _b['ms-DatePicker-day--disabled ' + styles.dayIsDisabled] = !day.isInBounds,
                                            _b['ms-DatePicker-day--today ' + styles.dayIsToday] = day.isToday,
                                            _b)), role: "gridcell", onKeyDown: _this._onDayKeyDown(day.originalDate, weekIndex, dayIndex), "aria-label": dateTimeFormatter.formatMonthDayYear(day.originalDate, strings), id: isNavigatedDate ? activeDescendantId : undefined, "aria-readonly": true, "aria-selected": day.isInBounds ? day.isSelected : undefined, "data-is-focusable": allFocusable || (day.isInBounds ? true : undefined), ref: function (element) { return _this._setDayRef(element, day, isNavigatedDate); }, disabled: !allFocusable && !day.isInBounds, "aria-disabled": !day.isInBounds, type: "button" },
                                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { "aria-hidden": "true" }, dateTimeFormatter.formatDay(day.originalDate)))));
                            })));
                    }))))));
    };
    CalendarDay.prototype.focus = function () {
        if (this.navigatedDay) {
            this.navigatedDay.tabIndex = 0;
            this.navigatedDay.focus();
        }
    };
    CalendarDay.prototype._setDayRef = function (element, day, isNavigatedDate) {
        if (isNavigatedDate) {
            this.navigatedDay = element;
        }
    };
    CalendarDay.prototype._setDayCellRef = function (element, day, isNavigatedDate) {
        this.days[day.key] = element;
    };
    CalendarDay.prototype._getWeekCornerStyles = function (weeks, dateRangeType) {
        var _this = this;
        var weekCornersStyled = {};
        switch (dateRangeType) {
            case _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Month:
                /* need to handle setting all of the corners on arbitrarily shaped blobs
                      __
                   __|A |
                  |B |C |__
                  |D |E |F |
        
                  in this case, A needs top left rounded, top right rounded
                  B needs top left rounded
                  C doesn't need any rounding
                  D needs bottom left rounded
                  E doesn't need any rounding
                  F needs top right rounding
                */
                // if there's an item above, lose both top corners. Item below, lose both bottom corners, etc.
                weeks.forEach(function (week, weekIndex) {
                    week.forEach(function (day, dayIndex) {
                        var above = weeks[weekIndex - 1] &&
                            weeks[weekIndex - 1][dayIndex] &&
                            weeks[weekIndex - 1][dayIndex].originalDate.getMonth() === weeks[weekIndex][dayIndex].originalDate.getMonth();
                        var below = weeks[weekIndex + 1] &&
                            weeks[weekIndex + 1][dayIndex] &&
                            weeks[weekIndex + 1][dayIndex].originalDate.getMonth() === weeks[weekIndex][dayIndex].originalDate.getMonth();
                        var left = weeks[weekIndex][dayIndex - 1] &&
                            weeks[weekIndex][dayIndex - 1].originalDate.getMonth() === weeks[weekIndex][dayIndex].originalDate.getMonth();
                        var right = weeks[weekIndex][dayIndex + 1] &&
                            weeks[weekIndex][dayIndex + 1].originalDate.getMonth() === weeks[weekIndex][dayIndex].originalDate.getMonth();
                        var roundedTopLeft = !above && !left;
                        var roundedTopRight = !above && !right;
                        var roundedBottomLeft = !below && !left;
                        var roundedBottomRight = !below && !right;
                        var style = '';
                        if (roundedTopLeft) {
                            style = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? style.concat(styles.topRightCornerDate + ' ') : style.concat(styles.topLeftCornerDate + ' ');
                        }
                        if (roundedTopRight) {
                            style = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? style.concat(styles.topLeftCornerDate + ' ') : style.concat(styles.topRightCornerDate + ' ');
                        }
                        if (roundedBottomLeft) {
                            style = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? style.concat(styles.bottomRightCornerDate + ' ') : style.concat(styles.bottomLeftCornerDate + ' ');
                        }
                        if (roundedBottomRight) {
                            style = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? style.concat(styles.bottomLeftCornerDate + ' ') : style.concat(styles.bottomRightCornerDate + ' ');
                        }
                        if (!above) {
                            style = style.concat(styles.topDate + ' ');
                        }
                        if (!below) {
                            style = style.concat(styles.bottomDate + ' ');
                        }
                        if (!right) {
                            style = style.concat(styles.rightDate + ' ');
                        }
                        if (!left) {
                            style = style.concat(styles.leftdate + ' ');
                        }
                        weekCornersStyled[weekIndex + '_' + dayIndex] = style;
                    });
                });
                break;
            case _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Week:
            case _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].WorkWeek:
                weeks.forEach(function (week, weekIndex) {
                    var minIndex = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findIndex"])(week, function (item) {
                        return item.isInBounds;
                    });
                    var maxIndex = _this._findLastIndex(week, function (item) {
                        return item.isInBounds;
                    });
                    var leftStyle = styles.topLeftCornerDate + ' ' + styles.bottomLeftCornerDate;
                    var rightStyle = styles.topRightCornerDate + ' ' + styles.bottomRightCornerDate;
                    weekCornersStyled[weekIndex + '_' + minIndex] = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? rightStyle : leftStyle;
                    weekCornersStyled[weekIndex + '_' + maxIndex] = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? leftStyle : rightStyle;
                });
                break;
        }
        return weekCornersStyled;
    };
    CalendarDay.prototype._getHighlightedCornerStyle = function (weekCorners, dayIndex, weekIndex) {
        var cornerStyle = weekCorners[weekIndex + '_' + dayIndex] ? weekCorners[weekIndex + '_' + dayIndex] : '';
        return cornerStyle;
    };
    CalendarDay.prototype._navigateMonthEdge = function (ev, date, weekIndex, dayIndex) {
        var _a = this.props, minDate = _a.minDate, maxDate = _a.maxDate;
        var targetDate = undefined;
        if (weekIndex === 0 && ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up) {
            targetDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addWeeks"])(date, -1);
        }
        else if (weekIndex === this.state.weeks.length - 1 && ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down) {
            targetDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addWeeks"])(date, 1);
        }
        else if (dayIndex === 0 && ev.which === Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTLSafeKeyCode"])(_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left)) {
            targetDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addDays"])(date, -1);
        }
        else if (dayIndex === DAYS_IN_WEEK - 1 && ev.which === Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTLSafeKeyCode"])(_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right)) {
            targetDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["addDays"])(date, 1);
        }
        // Don't navigate to out-of-bounds date
        if (targetDate &&
            (minDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(minDate, targetDate) < 1 : true) &&
            (maxDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(targetDate, maxDate) < 1 : true)) {
            this.props.onNavigateDate(targetDate, true);
            ev.preventDefault();
        }
    };
    CalendarDay.prototype._applyFunctionToDayRefs = function (func) {
        var _this = this;
        if (this.state.weeks) {
            this.state.weeks.map(function (week, weekIndex) {
                week.map(function (day) {
                    var ref = _this.days[day.key];
                    func(ref, day, weekIndex);
                });
            });
        }
    };
    CalendarDay.prototype._getWeeks = function (propsToUse) {
        var navigatedDate = propsToUse.navigatedDate, selectedDate = propsToUse.selectedDate, dateRangeType = propsToUse.dateRangeType, firstDayOfWeek = propsToUse.firstDayOfWeek, today = propsToUse.today, minDate = propsToUse.minDate, maxDate = propsToUse.maxDate, showSixWeeksByDefault = propsToUse.showSixWeeksByDefault, workWeekDays = propsToUse.workWeekDays;
        var date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);
        var todaysDate = today || new Date();
        var weeks = [];
        // Cycle the date backwards to get to the first day of the week.
        while (date.getDay() !== firstDayOfWeek) {
            date.setDate(date.getDate() - 1);
        }
        // a flag to indicate whether all days of the week are in the month
        var isAllDaysOfWeekOutOfMonth = false;
        // in work week view we want to select the whole week
        var selectedDateRangeType = dateRangeType === _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].WorkWeek ? _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Week : dateRangeType;
        var selectedDates = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["getDateRangeArray"])(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays);
        if (dateRangeType !== _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_3__["DateRangeType"].Day) {
            selectedDates = this._getBoundedDateRange(selectedDates, minDate, maxDate);
        }
        var shouldGetWeeks = true;
        for (var weekIndex = 0; shouldGetWeeks; weekIndex++) {
            var week = [];
            isAllDaysOfWeekOutOfMonth = true;
            for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {
                var originalDate = new Date(date.toString());
                var dayInfo = {
                    key: date.toString(),
                    date: date.getDate().toString(),
                    originalDate: originalDate,
                    isInMonth: date.getMonth() === navigatedDate.getMonth(),
                    isToday: Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDates"])(todaysDate, date),
                    isSelected: Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["isInDateRangeArray"])(date, selectedDates),
                    onSelected: this._onSelectDate.bind(this, originalDate),
                    isInBounds: (minDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(minDate, date) < 1 : true) &&
                        (maxDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(date, maxDate) < 1 : true) &&
                        !this._getIsRestrictedDate(date)
                };
                week.push(dayInfo);
                if (dayInfo.isInMonth) {
                    isAllDaysOfWeekOutOfMonth = false;
                }
                date.setDate(date.getDate() + 1);
            }
            // We append the condition of the loop depending upon the showSixWeeksByDefault prop.
            shouldGetWeeks = showSixWeeksByDefault ? !isAllDaysOfWeekOutOfMonth || weekIndex <= 5 : !isAllDaysOfWeekOutOfMonth;
            if (shouldGetWeeks) {
                weeks.push(week);
            }
        }
        return weeks;
    };
    CalendarDay.prototype._getIsRestrictedDate = function (date) {
        var restrictedDates = this.props.restrictedDates;
        if (!restrictedDates) {
            return false;
        }
        var restrictedDate = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["find"])(restrictedDates, function (rd) {
            return Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDates"])(rd, date);
        });
        return restrictedDate ? true : false;
    };
    CalendarDay.prototype._getBoundedDateRange = function (dateRange, minDate, maxDate) {
        var boundedDateRange = dateRange.slice();
        if (minDate) {
            boundedDateRange = boundedDateRange.filter(function (date) { return Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(date, minDate) >= 0; });
        }
        if (maxDate) {
            boundedDateRange = boundedDateRange.filter(function (date) { return Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_6__["compareDatePart"])(date, maxDate) <= 0; });
        }
        return boundedDateRange;
    };
    /**
     * Returns the index of the last element in the array where the predicate is true, and -1
     * otherwise
     * @param items Array of items to be iterated over using the predicate
     * @param predicate find calls predicate once for each element of the array, in descending
     * order, until it finds one where predicate returns true if such an element is found.
     */
    CalendarDay.prototype._findLastIndex = function (items, predicate) {
        for (var i = items.length - 1; i >= 0; i--) {
            var item = items[i];
            if (predicate(item)) {
                return i;
            }
        }
        return -1;
    };
    return CalendarDay;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Calendar/CalendarMonth.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalendarMonth", function() { return CalendarMonth; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/dateMath/DateMath.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Calendar_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Calendar/Calendar.scss.js");
/* harmony import */ var _CalendarYear__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Calendar/CalendarYear.js");








var styles = _Calendar_scss__WEBPACK_IMPORTED_MODULE_6__;
var MONTHS_PER_ROW = 4;
var CalendarMonth = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarMonth, _super);
    function CalendarMonth(props) {
        var _this = _super.call(this, props) || this;
        _this._navigatedMonthRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onCalendarYearRef = function (ref) {
            _this._calendarYearRef = ref;
        };
        _this._onKeyDown = function (callback, ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                callback();
            }
        };
        _this._onSelectYear = function (selectedYear) {
            _this._focusOnUpdate = true;
            var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate, maxDate = _a.maxDate, minDate = _a.minDate;
            var navYear = navigatedDate.getFullYear();
            if (navYear !== selectedYear) {
                var newNavigationDate = new Date(navigatedDate.getTime());
                newNavigationDate.setFullYear(selectedYear);
                // for min and max dates, adjust the new navigation date - perhaps this should be
                // checked on the master navigation date handler (i.e. in Calendar)
                if (maxDate && newNavigationDate > maxDate) {
                    newNavigationDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["setMonth"])(newNavigationDate, maxDate.getMonth());
                }
                else if (minDate && newNavigationDate < minDate) {
                    newNavigationDate = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["setMonth"])(newNavigationDate, minDate.getMonth());
                }
                onNavigateDate(newNavigationDate, true);
            }
            _this.setState({ isYearPickerVisible: false });
        };
        _this._yearToString = function (year) {
            var _a = _this.props, navigatedDate = _a.navigatedDate, dateTimeFormatter = _a.dateTimeFormatter;
            if (dateTimeFormatter) {
                // create a date based on the current nav date
                var yearFormattingDate = new Date(navigatedDate.getTime());
                yearFormattingDate.setFullYear(year);
                return dateTimeFormatter.formatYear(yearFormattingDate);
            }
            return String(year);
        };
        _this._yearRangeToString = function (yearRange) {
            return _this._yearToString(yearRange.fromYear) + " - " + _this._yearToString(yearRange.toYear);
        };
        _this._yearRangeToNextDecadeLabel = function (yearRange) {
            var strings = _this.props.strings;
            return strings.nextYearRangeAriaLabel ? strings.nextYearRangeAriaLabel + " " + _this._yearRangeToString(yearRange) : '';
        };
        _this._yearRangeToPrevDecadeLabel = function (yearRange) {
            var strings = _this.props.strings;
            return strings.prevYearRangeAriaLabel ? strings.prevYearRangeAriaLabel + " " + _this._yearRangeToString(yearRange) : '';
        };
        _this._onRenderYear = function (year) {
            return _this._yearToString(year);
        };
        _this._onSelectNextYear = function () {
            var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate;
            onNavigateDate(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["addYears"])(navigatedDate, 1), false);
        };
        _this._onSelectNextYearKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onKeyDown(_this._onSelectNextYear, ev);
            }
        };
        _this._onSelectPrevYear = function () {
            var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate;
            onNavigateDate(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["addYears"])(navigatedDate, -1), false);
        };
        _this._onSelectPrevYearKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onKeyDown(_this._onSelectPrevYear, ev);
            }
        };
        _this._onSelectMonthKeyDown = function (index) {
            return function (ev) { return _this._onKeyDown(function () { return _this._onSelectMonth(index); }, ev); };
        };
        _this._onSelectMonth = function (newMonth) {
            var _a = _this.props, navigatedDate = _a.navigatedDate, onNavigateDate = _a.onNavigateDate, onHeaderSelect = _a.onHeaderSelect;
            // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked
            if (onHeaderSelect) {
                onHeaderSelect(true);
            }
            onNavigateDate(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["setMonth"])(navigatedDate, newMonth), true);
        };
        _this._onHeaderSelect = function () {
            var _a = _this.props, onHeaderSelect = _a.onHeaderSelect, yearPickerHidden = _a.yearPickerHidden;
            if (!yearPickerHidden) {
                _this._focusOnUpdate = true;
                _this.setState({ isYearPickerVisible: true });
            }
            else if (onHeaderSelect) {
                onHeaderSelect(true);
            }
        };
        _this._onYearPickerHeaderSelect = function (focus) {
            _this._focusOnUpdate = focus;
            _this.setState({ isYearPickerVisible: false });
        };
        _this._onHeaderKeyDown = function (ev) {
            if (_this._onHeaderSelect && (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space)) {
                _this._onHeaderSelect();
            }
        };
        _this._selectMonthCallbacks = [];
        props.strings.shortMonths.map(function (month, index) {
            _this._selectMonthCallbacks[index] = _this._onSelectMonth.bind(_this, index);
        });
        _this._isCurrentMonth = _this._isCurrentMonth.bind(_this);
        _this._onSelectNextYear = _this._onSelectNextYear.bind(_this);
        _this._onSelectPrevYear = _this._onSelectPrevYear.bind(_this);
        _this._onSelectMonth = _this._onSelectMonth.bind(_this);
        _this.state = { isYearPickerVisible: false };
        return _this;
    }
    CalendarMonth.prototype.componentDidUpdate = function () {
        if (this._focusOnUpdate) {
            this.focus();
            this._focusOnUpdate = false;
        }
    };
    CalendarMonth.prototype.render = function () {
        var _a, _b;
        var _this = this;
        var _c = this.props, navigatedDate = _c.navigatedDate, selectedDate = _c.selectedDate, strings = _c.strings, today = _c.today, highlightCurrentMonth = _c.highlightCurrentMonth, highlightSelectedMonth = _c.highlightSelectedMonth, navigationIcons = _c.navigationIcons, dateTimeFormatter = _c.dateTimeFormatter, minDate = _c.minDate, maxDate = _c.maxDate, yearPickerHidden = _c.yearPickerHidden;
        if (this.state.isYearPickerVisible) {
            // default the year picker to the current navigated date
            var currentSelectedDate = navigatedDate ? navigatedDate.getFullYear() : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CalendarYear__WEBPACK_IMPORTED_MODULE_7__["CalendarYear"], { key: 'calendarYear_' + (currentSelectedDate && currentSelectedDate.toString()), minYear: minDate ? minDate.getFullYear() : undefined, maxYear: maxDate ? maxDate.getFullYear() : undefined, onSelectYear: this._onSelectYear, navigationIcons: navigationIcons, onHeaderSelect: this._onYearPickerHeaderSelect, selectedYear: currentSelectedDate, onRenderYear: this._onRenderYear, strings: {
                    rangeAriaLabel: this._yearRangeToString,
                    prevRangeAriaLabel: this._yearRangeToPrevDecadeLabel,
                    nextRangeAriaLabel: this._yearRangeToNextDecadeLabel
                }, ref: this._onCalendarYearRef }));
        }
        var rowIndexes = [];
        for (var i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {
            rowIndexes.push(i);
        }
        var leftNavigationIcon = navigationIcons.leftNavigation;
        var rightNavigationIcon = navigationIcons.rightNavigation;
        // determine if previous/next years are in bounds
        var isPrevYearInBounds = minDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["compareDatePart"])(minDate, Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["getYearStart"])(navigatedDate)) < 0 : true;
        var isNextYearInBounds = maxDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["compareDatePart"])(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["getYearEnd"])(navigatedDate), maxDate) < 0 : true;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-monthPicker', styles.monthPicker) },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-header', styles.header) },
                this.props.onHeaderSelect || !yearPickerHidden ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-currentYear js-showYearPicker', styles.currentYear, styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, "aria-label": dateTimeFormatter.formatYear(navigatedDate), role: "button", "aria-atomic": true, "aria-live": "polite", tabIndex: 0 }, dateTimeFormatter.formatYear(navigatedDate))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-currentYear js-showYearPicker', styles.currentYear) }, dateTimeFormatter.formatYear(navigatedDate))),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-yearComponents', styles.yearComponents) },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-navContainer', styles.navContainer) },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-prevYear js-prevYear', styles.prevYear, (_a = {},
                                _a['ms-DatePicker-prevYear--disabled ' + styles.prevYearIsDisabled] = !isPrevYearInBounds,
                                _a)), disabled: !isPrevYearInBounds, onClick: isPrevYearInBounds ? this._onSelectPrevYear : undefined, onKeyDown: isPrevYearInBounds ? this._onSelectPrevYearKeyDown : undefined, title: strings.prevYearAriaLabel
                                ? strings.prevYearAriaLabel + ' ' + dateTimeFormatter.formatYear(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["addYears"])(navigatedDate, -1))
                                : undefined, role: "button", type: "button" },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? rightNavigationIcon : leftNavigationIcon })),
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-nextYear js-nextYear', styles.nextYear, (_b = {},
                                _b['ms-DatePicker-nextYear--disabled ' + styles.nextYearIsDisabled] = !isNextYearInBounds,
                                _b)), disabled: !isNextYearInBounds, onClick: isNextYearInBounds ? this._onSelectNextYear : undefined, onKeyDown: isNextYearInBounds ? this._onSelectNextYearKeyDown : undefined, title: strings.nextYearAriaLabel
                                ? strings.nextYearAriaLabel + ' ' + dateTimeFormatter.formatYear(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["addYears"])(navigatedDate, 1))
                                : undefined, role: "button", type: "button" },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? leftNavigationIcon : rightNavigationIcon }))))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-optionGrid', styles.optionGrid), role: "grid", "aria-readonly": "true" }, rowIndexes.map(function (rowNum) {
                    var monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: 'monthRow_' + rowNum, role: "row" }, monthsForRow.map(function (month, index) {
                        var _a;
                        var monthIndex = rowNum * MONTHS_PER_ROW + index;
                        var indexedMonth = Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["setMonth"])(navigatedDate, monthIndex);
                        var isCurrentMonth = _this._isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today);
                        var isNavigatedMonth = navigatedDate.getMonth() === monthIndex;
                        var isSelectedMonth = selectedDate.getMonth() === monthIndex;
                        var isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();
                        var isInBounds = (minDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["compareDatePart"])(minDate, Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["getMonthEnd"])(indexedMonth)) < 1 : true) &&
                            (maxDate ? Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["compareDatePart"])(Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_4__["getMonthStart"])(indexedMonth), maxDate) < 1 : true);
                        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { role: 'gridcell', className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-monthOption', styles.monthOption, (_a = {},
                                _a['ms-DatePicker-day--today ' + styles.monthIsCurrentMonth] = highlightCurrentMonth && isCurrentMonth,
                                _a['ms-DatePicker-day--highlighted ' + styles.monthIsHighlighted] = (highlightCurrentMonth || highlightSelectedMonth) && isSelectedMonth && isSelectedYear,
                                _a['ms-DatePicker-monthOption--disabled ' + styles.monthOptionIsDisabled] = !isInBounds,
                                _a)), disabled: !isInBounds, key: monthIndex, onClick: isInBounds ? _this._selectMonthCallbacks[monthIndex] : undefined, onKeyDown: isInBounds ? _this._onSelectMonthKeyDown(monthIndex) : undefined, "aria-label": dateTimeFormatter.formatMonthYear(indexedMonth, strings), "aria-selected": isCurrentMonth || isNavigatedMonth, "data-is-focusable": isInBounds ? true : undefined, ref: isNavigatedMonth ? _this._navigatedMonthRef : undefined, type: "button" }, month));
                    })));
                })))));
    };
    CalendarMonth.prototype.focus = function () {
        if (this._calendarYearRef) {
            this._calendarYearRef.focus();
        }
        else if (this._navigatedMonthRef.current) {
            this._navigatedMonthRef.current.tabIndex = 0;
            this._navigatedMonthRef.current.focus();
        }
    };
    CalendarMonth.prototype._isCurrentMonth = function (month, year, today) {
        return today.getFullYear() === year && today.getMonth() === month;
    };
    return CalendarMonth;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Calendar/CalendarYear.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalendarYear", function() { return CalendarYear; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Calendar_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Calendar/Calendar.scss.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");






var styles = _Calendar_scss__WEBPACK_IMPORTED_MODULE_4__;
var CELL_COUNT = 12;
var DefaultCalendarYearStrings = {
    prevRangeAriaLabel: undefined,
    nextRangeAriaLabel: undefined
};
var DefaultNavigationIcons = {
    leftNavigation: 'Up',
    rightNavigation: 'Down',
    closeIcon: 'CalculatorMultiply'
};
var CalendarYearGridCell = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearGridCell, _super);
    function CalendarYearGridCell() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._buttonRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderYear = function () {
            var _a = _this.props, year = _a.year, onRenderYear = _a.onRenderYear;
            if (onRenderYear) {
                return onRenderYear(year);
            }
            return year;
        };
        _this._onClick = function () {
            if (_this.props.onSelectYear) {
                _this.props.onSelectYear(_this.props.year);
            }
        };
        _this._onKeyDown = function (ev) {
            if (_this.props.onSelectYear && ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this.props.onSelectYear(_this.props.year);
            }
        };
        return _this;
    }
    CalendarYearGridCell.prototype.focus = function () {
        if (this._buttonRef.current) {
            this._buttonRef.current.focus();
        }
    };
    CalendarYearGridCell.prototype.render = function () {
        var _a;
        var _b = this.props, year = _b.year, selected = _b.selected, disabled = _b.disabled, onSelectYear = _b.onSelectYear;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-yearOption', styles.yearOption, (_a = {},
                _a['ms-DatePicker-day--highlighted ' + styles.yearIsHighlighted] = selected,
                _a['ms-DatePicker-yearOption--disabled ' + styles.yearOptionIsDisabled] = disabled,
                _a)), type: "button", role: "gridcell", onClick: !disabled && onSelectYear ? this._onClick : undefined, onKeyDown: !disabled && onSelectYear ? this._onKeyDown : undefined, disabled: disabled, "aria-label": String(year), "aria-selected": selected, ref: this._buttonRef }, this._onRenderYear()));
    };
    return CalendarYearGridCell;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearGrid = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearGrid, _super);
    function CalendarYearGrid() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._selectedCellRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._currentCellRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._renderCell = function (year) {
            var selected = year === _this.props.selectedYear;
            var _a = _this.props, minYear = _a.minYear, maxYear = _a.maxYear, onSelectYear = _a.onSelectYear;
            var disabled = (minYear !== undefined && year < minYear) || (maxYear !== undefined && year > maxYear);
            var current = year === new Date().getFullYear();
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearGridCell, { key: year, year: year, selected: selected, current: current, disabled: disabled, onSelectYear: onSelectYear, ref: selected ? _this._selectedCellRef : current ? _this._currentCellRef : undefined }));
        };
        return _this;
    }
    CalendarYearGrid.prototype.focus = function () {
        if (this._selectedCellRef.current) {
            this._selectedCellRef.current.focus();
        }
        else if (this._currentCellRef.current) {
            this._currentCellRef.current.focus();
        }
    };
    CalendarYearGrid.prototype.render = function () {
        var _a = this.props, fromYear = _a.fromYear, toYear = _a.toYear;
        var year = fromYear;
        var cells = [];
        while (year <= toYear) {
            cells.push(this._renderCell(year));
            year++;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], null,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-optionGrid', styles.optionGrid), role: "grid" },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "row" }, cells))));
    };
    return CalendarYearGrid;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearNavPrev = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearNavPrev, _super);
    function CalendarYearNavPrev() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onSelectPrev = function () {
            if (!_this.isDisabled && _this.props.onSelectPrev) {
                _this.props.onSelectPrev();
            }
        };
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onSelectPrev();
            }
        };
        return _this;
    }
    CalendarYearNavPrev.prototype.render = function () {
        var _a;
        var iconStrings = this.props.navigationIcons || DefaultNavigationIcons;
        var strings = this.props.strings || DefaultCalendarYearStrings;
        var prevRangeAriaLabel = strings.prevRangeAriaLabel;
        var prevRange = { fromYear: this.props.fromYear - CELL_COUNT, toYear: this.props.toYear - CELL_COUNT };
        var prevAriaLabel = prevRangeAriaLabel
            ? typeof prevRangeAriaLabel === 'string'
                ? prevRangeAriaLabel
                : prevRangeAriaLabel(prevRange)
            : undefined;
        var disabled = this.isDisabled;
        var onSelectPrev = this.props.onSelectPrev;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-prevDecade', styles.prevDecade, (_a = {},
                _a['ms-DatePicker-prevDecade--disabled ' + styles.prevDecadeIsDisabled] = disabled,
                _a)), onClick: !disabled && onSelectPrev ? this._onSelectPrev : undefined, onKeyDown: !disabled && onSelectPrev ? this._onKeyDown : undefined, type: "button", tabIndex: 0, title: prevAriaLabel, disabled: disabled },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? iconStrings.rightNavigation : iconStrings.leftNavigation })));
    };
    Object.defineProperty(CalendarYearNavPrev.prototype, "isDisabled", {
        get: function () {
            var minYear = this.props.minYear;
            return minYear !== undefined && this.props.fromYear < minYear;
        },
        enumerable: true,
        configurable: true
    });
    return CalendarYearNavPrev;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearNavNext = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearNavNext, _super);
    function CalendarYearNavNext() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onSelectNext = function () {
            if (!_this.isDisabled && _this.props.onSelectNext) {
                _this.props.onSelectNext();
            }
        };
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._onSelectNext();
            }
        };
        return _this;
    }
    CalendarYearNavNext.prototype.render = function () {
        var _a;
        var iconStrings = this.props.navigationIcons || DefaultNavigationIcons;
        var strings = this.props.strings || DefaultCalendarYearStrings;
        var nextRangeAriaLabel = strings.nextRangeAriaLabel;
        var nextRange = { fromYear: this.props.fromYear + CELL_COUNT, toYear: this.props.toYear + CELL_COUNT };
        var nextAriaLabel = nextRangeAriaLabel
            ? typeof nextRangeAriaLabel === 'string'
                ? nextRangeAriaLabel
                : nextRangeAriaLabel(nextRange)
            : undefined;
        var onSelectNext = this.props.onSelectNext;
        var disabled = this.isDisabled;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-nextDecade', styles.nextDecade, (_a = {},
                _a['ms-DatePicker-nextDecade--disabled ' + styles.nextDecadeIsDisabled] = disabled,
                _a)), onClick: !disabled && onSelectNext ? this._onSelectNext : undefined, onKeyDown: !disabled && onSelectNext ? this._onKeyDown : undefined, type: "button", tabIndex: 0, title: nextAriaLabel, disabled: this.isDisabled },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? iconStrings.leftNavigation : iconStrings.rightNavigation })));
    };
    Object.defineProperty(CalendarYearNavNext.prototype, "isDisabled", {
        get: function () {
            var maxYear = this.props.maxYear;
            return maxYear !== undefined && this.props.fromYear + CELL_COUNT > maxYear;
        },
        enumerable: true,
        configurable: true
    });
    return CalendarYearNavNext;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearNav = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearNav, _super);
    function CalendarYearNav() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    CalendarYearNav.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-decadeComponents', styles.decadeComponents) },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-navContainer', styles.navContainer) },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearNavPrev, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearNavNext, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props)))));
    };
    return CalendarYearNav;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearTitle = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearTitle, _super);
    function CalendarYearTitle() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onHeaderSelect = function () {
            if (_this.props.onHeaderSelect) {
                _this.props.onHeaderSelect(true);
            }
        };
        _this._onHeaderKeyDown = function (ev) {
            if (_this.props.onHeaderSelect && (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space)) {
                _this.props.onHeaderSelect(true);
            }
        };
        _this._onRenderYear = function (year) {
            if (_this.props.onRenderYear) {
                return _this.props.onRenderYear(year);
            }
            return year;
        };
        return _this;
    }
    CalendarYearTitle.prototype.render = function () {
        var _a = this.props, fromYear = _a.fromYear, toYear = _a.toYear, onHeaderSelect = _a.onHeaderSelect;
        if (onHeaderSelect) {
            var strings = this.props.strings || DefaultCalendarYearStrings;
            var rangeAriaLabel = strings.rangeAriaLabel;
            var ariaLabel = rangeAriaLabel
                ? typeof rangeAriaLabel === 'string'
                    ? rangeAriaLabel
                    : rangeAriaLabel(this.props)
                : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-currentDecade js-showYearPicker', styles.currentDecade, styles.headerToggleView), onClick: this._onHeaderSelect, onKeyDown: this._onHeaderKeyDown, "aria-label": ariaLabel, role: "button", "aria-atomic": true, "aria-live": "polite", tabIndex: 0 },
                this._onRenderYear(fromYear),
                " - ",
                this._onRenderYear(toYear)));
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-currentDecade js-showYearPicker', styles.currentDecade) },
            this._onRenderYear(fromYear),
            " - ",
            this._onRenderYear(toYear)));
    };
    return CalendarYearTitle;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYearHeader = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYearHeader, _super);
    function CalendarYearHeader() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onRenderTitle = function () {
            if (_this.props.onRenderTitle) {
                return _this.props.onRenderTitle(_this.props);
            }
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearTitle, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _this.props));
        };
        _this._onRenderNav = function () {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearNav, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _this.props));
        };
        return _this;
    }
    CalendarYearHeader.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-header', styles.header) },
            this._onRenderTitle(),
            this._onRenderNav()));
    };
    return CalendarYearHeader;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var CalendarYear = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalendarYear, _super);
    function CalendarYear(props) {
        var _this = _super.call(this, props) || this;
        _this._gridRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onNavNext = function () {
            _this.setState({ fromYear: _this.state.fromYear + CELL_COUNT });
        };
        _this._onNavPrev = function () {
            _this.setState({ fromYear: _this.state.fromYear - CELL_COUNT });
        };
        _this._renderHeader = function () {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearHeader, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _this.props, { fromYear: _this.state.fromYear, toYear: _this.state.fromYear + CELL_COUNT - 1, onSelectPrev: _this._onNavPrev, onSelectNext: _this._onNavNext })));
        };
        _this._renderGrid = function () {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarYearGrid, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _this.props, { fromYear: _this.state.fromYear, toYear: _this.state.fromYear + CELL_COUNT - 1, ref: _this._gridRef })));
        };
        _this.state = _this._calculateInitialStateFromProps(props);
        return _this;
    }
    CalendarYear.prototype.focus = function () {
        if (this._gridRef.current) {
            this._gridRef.current.focus();
        }
    };
    CalendarYear.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-DatePicker-yearPicker', styles.yearPicker) },
            this._renderHeader(),
            this._renderGrid()));
    };
    CalendarYear.prototype._calculateInitialStateFromProps = function (props) {
        var selectedYear = props.selectedYear, navigatedYear = props.navigatedYear;
        var rangeYear = selectedYear || navigatedYear || new Date().getFullYear();
        var fromYear = Math.floor(rangeYear / 10) * 10;
        return {
            fromYear: fromYear,
            navigatedYear: navigatedYear,
            selectedYear: selectedYear
        };
    };
    return CalendarYear;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Calendar/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Calendar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Calendar/Calendar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return _Calendar__WEBPACK_IMPORTED_MODULE_0__["Calendar"]; });

/* harmony import */ var _Calendar_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Calendar/Calendar.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _Calendar_types__WEBPACK_IMPORTED_MODULE_1__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _Calendar_types__WEBPACK_IMPORTED_MODULE_1__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _Calendar_types__WEBPACK_IMPORTED_MODULE_1__["FirstWeekOfYear"]; });





/***/ }),

/***/ "./lib/components/Callout/Callout.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Callout", function() { return Callout; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _CalloutContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Callout/CalloutContent.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Layer.js");




var Callout = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Callout, _super);
    function Callout() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Callout.prototype.render = function () {
        var _a = this.props, layerProps = _a.layerProps, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["layerProps"]);
        var content = react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CalloutContent__WEBPACK_IMPORTED_MODULE_2__["CalloutContent"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rest));
        return this.props.doNotLayer ? content : react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_3__["Layer"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, layerProps), content);
    };
    return Callout;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Callout/CalloutContent.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalloutContentBase", function() { return CalloutContentBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/positioning.js");
/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Popup.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Styling.js");
var _a;








var ANIMATIONS = (_a = {},
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].top] = _Styling__WEBPACK_IMPORTED_MODULE_6__["AnimationClassNames"].slideUpIn10,
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].bottom] = _Styling__WEBPACK_IMPORTED_MODULE_6__["AnimationClassNames"].slideDownIn10,
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].left] = _Styling__WEBPACK_IMPORTED_MODULE_6__["AnimationClassNames"].slideLeftIn10,
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].right] = _Styling__WEBPACK_IMPORTED_MODULE_6__["AnimationClassNames"].slideRightIn10,
    _a);
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])({
    disableCaching: true
});
var BEAK_ORIGIN_POSITION = { top: 0, left: 0 };
// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.
// To help ensure that edge will respect the offscreen style opacity
// filter needs to be added as an additional way to set opacity.
var OFF_SCREEN_STYLE = { opacity: 0, filter: 'opacity(0)' };
// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element
// This constant array can be used to filter these out of native props spread on callout root and apply them together on
// calloutMain (the Popup component within the callout)
var ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];
var CalloutContentBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CalloutContentBase, _super);
    function CalloutContentBase(props) {
        var _this = _super.call(this, props) || this;
        _this._hostElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._calloutElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._hasListeners = false;
        _this._disposables = [];
        _this.dismiss = function (ev) {
            var onDismiss = _this.props.onDismiss;
            if (onDismiss) {
                onDismiss(ev);
            }
        };
        _this._dismissOnScroll = function (ev) {
            var preventDismissOnScroll = _this.props.preventDismissOnScroll;
            if (_this.state.positions && !preventDismissOnScroll) {
                _this._dismissOnClickOrScroll(ev);
            }
        };
        _this._dismissOnResize = function (ev) {
            var preventDismissOnResize = _this.props.preventDismissOnResize;
            if (!preventDismissOnResize) {
                _this.dismiss(ev);
            }
        };
        _this._dismissOnLostFocus = function (ev) {
            var preventDismissOnLostFocus = _this.props.preventDismissOnLostFocus;
            if (!preventDismissOnLostFocus) {
                _this._dismissOnClickOrScroll(ev);
            }
        };
        _this._setInitialFocus = function () {
            if (_this.props.setInitialFocus && !_this._didSetInitialFocus && _this.state.positions && _this._calloutElement.current) {
                _this._didSetInitialFocus = true;
                _this._async.requestAnimationFrame(function () { return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["focusFirstChild"])(_this._calloutElement.current); }, _this._calloutElement.current);
            }
        };
        _this._onComponentDidMount = function () {
            _this._addListeners();
            if (_this.props.onLayerMounted) {
                _this.props.onLayerMounted();
            }
            _this._updateAsyncPosition();
            _this._setHeightOffsetEveryFrame();
        };
        _this._mouseDownOnPopup = function () {
            _this._isMouseDownOnPopup = true;
        };
        _this._mouseUpOnPopup = function () {
            _this._isMouseDownOnPopup = false;
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["Async"](_this);
        _this._didSetInitialFocus = false;
        _this.state = {
            positions: undefined,
            slideDirectionalClassName: undefined,
            // @TODO it looks like this is not even being used anymore.
            calloutElementRect: undefined,
            heightOffset: 0
        };
        _this._positionAttempts = 0;
        return _this;
    }
    CalloutContentBase.prototype.componentDidUpdate = function () {
        if (!this.props.hidden) {
            this._setInitialFocus();
            if (!this._hasListeners) {
                this._addListeners();
            }
            this._updateAsyncPosition();
        }
        else {
            if (this._hasListeners) {
                this._removeListeners();
            }
        }
    };
    CalloutContentBase.prototype.shouldComponentUpdate = function (newProps, newState) {
        if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {
            // Do not update when hidden.
            return false;
        }
        return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(this.props, newProps) || !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(this.state, newState);
    };
    // tslint:disable-next-line function-name
    CalloutContentBase.prototype.UNSAFE_componentWillMount = function () {
        this._setTargetWindowAndElement(this._getTarget());
    };
    CalloutContentBase.prototype.componentWillUnmount = function () {
        this._async.dispose();
        this._disposables.forEach(function (dispose) { return dispose(); });
    };
    // tslint:disable-next-line function-name
    CalloutContentBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {
        // If the target element changed, find the new one. If we are tracking target with class name, always find element because we
        // do not know if fabric has rendered a new element and disposed the old element.
        var newTarget = this._getTarget(newProps);
        var oldTarget = this._getTarget();
        if ((newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) && !this._blockResetHeight) {
            this._maxHeight = undefined;
            this._setTargetWindowAndElement(newTarget);
        }
        if (newProps.gapSpace !== this.props.gapSpace || this.props.beakWidth !== newProps.beakWidth) {
            this._maxHeight = undefined;
        }
        if (newProps.finalHeight !== this.props.finalHeight) {
            this._setHeightOffsetEveryFrame();
        }
        // Ensure positioning is recalculated when we are about to show a persisted menu.
        if (this._didPositionPropsChange(newProps, this.props)) {
            this._maxHeight = undefined;
            // Target might have been updated while hidden.
            this._setTargetWindowAndElement(newTarget);
            this.setState({
                positions: undefined
            });
            this._didSetInitialFocus = false;
            this._bounds = undefined;
        }
        this._blockResetHeight = false;
    };
    CalloutContentBase.prototype.componentDidMount = function () {
        if (!this.props.hidden) {
            this._onComponentDidMount();
        }
    };
    CalloutContentBase.prototype.render = function () {
        // If there is no target window then we are likely in server side rendering and we should not render anything.
        if (!this._targetWindow) {
            return null;
        }
        var target = this.props.target;
        var _a = this.props, styles = _a.styles, style = _a.style, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className, isBeakVisible = _a.isBeakVisible, children = _a.children, beakWidth = _a.beakWidth, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth, finalHeight = _a.finalHeight, _b = _a.hideOverflow, hideOverflow = _b === void 0 ? !!finalHeight : _b, backgroundColor = _a.backgroundColor, calloutMaxHeight = _a.calloutMaxHeight, onScroll = _a.onScroll, _c = _a.shouldRestoreFocus, shouldRestoreFocus = _c === void 0 ? true : _c;
        target = this._getTarget();
        var positions = this.state.positions;
        var getContentMaxHeight = this._getMaxHeight() ? this._getMaxHeight() + this.state.heightOffset : undefined;
        var contentMaxHeight = calloutMaxHeight && getContentMaxHeight && calloutMaxHeight < getContentMaxHeight ? calloutMaxHeight : getContentMaxHeight;
        var overflowYHidden = hideOverflow;
        var beakVisible = isBeakVisible && !!target;
        this._classNames = getClassNames(styles, {
            theme: this.props.theme,
            className: className,
            overflowYHidden: overflowYHidden,
            calloutWidth: calloutWidth,
            positions: positions,
            beakWidth: beakWidth,
            backgroundColor: backgroundColor,
            calloutMaxWidth: calloutMaxWidth
        });
        var overflowStyle = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, style, { maxHeight: contentMaxHeight }, (overflowYHidden && { overflowY: 'hidden' }));
        var visibilityStyle = this.props.hidden ? { visibility: 'hidden' } : undefined;
        // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.
        var content = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._hostElement, className: this._classNames.container, style: visibilityStyle },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"], ARIA_ROLE_ATTRIBUTES), { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(this._classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? positions.elementPosition : OFF_SCREEN_STYLE, tabIndex: -1, 
                // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
                ref: this._calloutElement }),
                beakVisible && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.beak, style: this._getBeakPosition() }),
                beakVisible && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.beakCurtain }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Popup__WEBPACK_IMPORTED_MODULE_5__["Popup"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, ARIA_ROLE_ATTRIBUTES), { ariaLabel: ariaLabel, ariaDescribedBy: ariaDescribedBy, ariaLabelledBy: ariaLabelledBy, className: this._classNames.calloutMain, onDismiss: this.dismiss, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle, onMouseDown: this._mouseDownOnPopup, onMouseUp: this._mouseUpOnPopup }), children))));
        return content;
    };
    CalloutContentBase.prototype._dismissOnClickOrScroll = function (ev) {
        var target = ev.target;
        var isEventTargetOutsideCallout = this._hostElement.current && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(this._hostElement.current, target);
        // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.
        if (isEventTargetOutsideCallout && this._isMouseDownOnPopup) {
            this._isMouseDownOnPopup = false;
            return;
        }
        if ((!this._target && isEventTargetOutsideCallout) ||
            (ev.target !== this._targetWindow &&
                isEventTargetOutsideCallout &&
                (this._target.stopPropagation ||
                    (!this._target || (target !== this._target && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(this._target, target)))))) {
            this.dismiss(ev);
        }
    };
    CalloutContentBase.prototype._addListeners = function () {
        var _this = this;
        // This is added so the callout will dismiss when the window is scrolled
        // but not when something inside the callout is scrolled. The delay seems
        // to be required to avoid React firing an async focus event in IE from
        // the target changing focus quickly prior to rendering the callout.
        this._async.setTimeout(function () {
            _this._disposables.push(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(_this._targetWindow, 'scroll', _this._dismissOnScroll, true), Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(_this._targetWindow, 'resize', _this._dismissOnResize, true), Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(_this._targetWindow.document.documentElement, 'focus', _this._dismissOnLostFocus, true), Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(_this._targetWindow.document.documentElement, 'click', _this._dismissOnLostFocus, true));
            _this._hasListeners = true;
        }, 0);
    };
    CalloutContentBase.prototype._removeListeners = function () {
        this._disposables.forEach(function (dispose) { return dispose(); });
        this._disposables = [];
        this._hasListeners = false;
    };
    CalloutContentBase.prototype._updateAsyncPosition = function () {
        var _this = this;
        this._async.requestAnimationFrame(function () { return _this._updatePosition(); }, this._calloutElement.current);
    };
    CalloutContentBase.prototype._getBeakPosition = function () {
        var positions = this.state.positions;
        var beakPostionStyle = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (positions && positions.beakPosition ? positions.beakPosition.elementPosition : null));
        if (!beakPostionStyle.top && !beakPostionStyle.bottom && !beakPostionStyle.left && !beakPostionStyle.right) {
            beakPostionStyle.left = BEAK_ORIGIN_POSITION.left;
            beakPostionStyle.top = BEAK_ORIGIN_POSITION.top;
        }
        return beakPostionStyle;
    };
    CalloutContentBase.prototype._updatePosition = function () {
        // Try to update the target, page might have changed
        this._setTargetWindowAndElement(this._getTarget());
        var positions = this.state.positions;
        var hostElement = this._hostElement.current;
        var calloutElement = this._calloutElement.current;
        // If we expect a target element to position against, we need to wait until `this._target` is resolved. Otherwise
        // we can try to position.
        var expectsTarget = !!this.props.target;
        if (hostElement && calloutElement && (!expectsTarget || this._target)) {
            var currentProps = void 0;
            currentProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["assign"])(currentProps, this.props);
            currentProps.bounds = this._getBounds();
            currentProps.target = this._target;
            // If there is a finalHeight given then we assume that the user knows and will handle
            // additional positioning adjustments so we should call positionCard
            var newPositions = this.props.finalHeight
                ? Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["positionCard"])(currentProps, hostElement, calloutElement, positions)
                : Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["positionCallout"])(currentProps, hostElement, calloutElement, positions);
            // Set the new position only when the positions are not exists or one of the new callout positions are different.
            // The position should not change if the position is within 2 decimal places.
            if ((!positions && newPositions) ||
                (positions && newPositions && !this._arePositionsEqual(positions, newPositions) && this._positionAttempts < 5)) {
                // We should not reposition the callout more than a few times, if it is then the content is likely resizing
                // and we should stop trying to reposition to prevent a stack overflow.
                this._positionAttempts++;
                this.setState({
                    positions: newPositions
                });
            }
            else if (this._positionAttempts > 0) {
                // Only call the onPositioned callback if the callout has been re-positioned at least once.
                this._positionAttempts = 0;
                if (this.props.onPositioned) {
                    this.props.onPositioned(this.state.positions);
                }
            }
        }
    };
    CalloutContentBase.prototype._getBounds = function () {
        if (!this._bounds) {
            var bounds = this.props.bounds;
            var currentBounds = typeof bounds === 'function' ? bounds(this.props.target, this._targetWindow) : bounds;
            if (!currentBounds) {
                currentBounds = {
                    top: 0 + this.props.minPagePadding,
                    left: 0 + this.props.minPagePadding,
                    right: this._targetWindow.innerWidth - this.props.minPagePadding,
                    bottom: this._targetWindow.innerHeight - this.props.minPagePadding,
                    width: this._targetWindow.innerWidth - this.props.minPagePadding * 2,
                    height: this._targetWindow.innerHeight - this.props.minPagePadding * 2
                };
            }
            this._bounds = currentBounds;
        }
        return this._bounds;
    };
    // Max height should remain as synchronous as possible, which is why it is not done using set state.
    // It needs to be synchronous since it will impact the ultimate position of the callout.
    CalloutContentBase.prototype._getMaxHeight = function () {
        var _this = this;
        if (!this._maxHeight) {
            if (this.props.directionalHintFixed && this._target) {
                var beakWidth = this.props.isBeakVisible ? this.props.beakWidth : 0;
                var gapSpace = this.props.gapSpace ? this.props.gapSpace : 0;
                // Since the callout cannot measure it's border size it must be taken into account here. Otherwise it will
                // overlap with the target.
                var totalGap_1 = gapSpace + beakWidth;
                this._async.requestAnimationFrame(function () {
                    if (_this._target) {
                        _this._maxHeight = Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["getMaxHeight"])(_this._target, _this.props.directionalHint, totalGap_1, _this._getBounds(), _this.props.coverTarget);
                        _this._blockResetHeight = true;
                        _this.forceUpdate();
                    }
                }, this._target);
            }
            else {
                this._maxHeight = this._getBounds().height;
            }
        }
        return this._maxHeight;
    };
    CalloutContentBase.prototype._arePositionsEqual = function (positions, newPosition) {
        return (this._comparePositions(positions.elementPosition, newPosition.elementPosition) &&
            this._comparePositions(positions.beakPosition.elementPosition, newPosition.beakPosition.elementPosition));
    };
    CalloutContentBase.prototype._comparePositions = function (oldPositions, newPositions) {
        for (var key in newPositions) {
            // This needs to be checked here and below because there is a linting error if for in does not immediately have an if statement
            if (newPositions.hasOwnProperty(key)) {
                var oldPositionEdge = oldPositions[key];
                var newPositionEdge = newPositions[key];
                if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {
                    if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {
                        return false;
                    }
                }
                else {
                    return false;
                }
            }
        }
        return true;
    };
    CalloutContentBase.prototype._setTargetWindowAndElement = function (target) {
        var currentElement = this._calloutElement.current;
        if (target) {
            if (typeof target === 'string') {
                var currentDoc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getDocument"])(currentElement);
                this._target = currentDoc ? currentDoc.querySelector(target) : null;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(currentElement);
            }
            else if (target.stopPropagation) {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(target.toElement);
                this._target = target;
            }
            else if (target.getBoundingClientRect) {
                var targetElement = target;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(targetElement);
                this._target = target;
            }
            else if (target.current !== undefined) {
                this._target = target.current;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(this._target);
                // HTMLImgElements can have x and y values. The check for it being a point must go last.
            }
            else {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(currentElement);
                this._target = target;
            }
        }
        else {
            this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(currentElement);
        }
    };
    CalloutContentBase.prototype._setHeightOffsetEveryFrame = function () {
        var _this = this;
        if (this._calloutElement.current && this.props.finalHeight) {
            this._setHeightOffsetTimer = this._async.requestAnimationFrame(function () {
                var calloutMainElem = _this._calloutElement.current && _this._calloutElement.current.lastChild;
                if (!calloutMainElem) {
                    return;
                }
                var cardScrollHeight = calloutMainElem.scrollHeight;
                var cardCurrHeight = calloutMainElem.offsetHeight;
                var scrollDiff = cardScrollHeight - cardCurrHeight;
                _this.setState({
                    heightOffset: _this.state.heightOffset + scrollDiff
                });
                if (calloutMainElem.offsetHeight < _this.props.finalHeight) {
                    _this._setHeightOffsetEveryFrame();
                }
                else {
                    _this._async.cancelAnimationFrame(_this._setHeightOffsetTimer, _this._calloutElement.current);
                }
            }, this._calloutElement.current);
        }
    };
    // Whether or not the current positions should be reset
    CalloutContentBase.prototype._didPositionPropsChange = function (newProps, oldProps) {
        return (!newProps.hidden && newProps.hidden !== oldProps.hidden) || newProps.directionalHint !== oldProps.directionalHint;
    };
    CalloutContentBase.prototype._getTarget = function (props) {
        if (props === void 0) { props = this.props; }
        var target = props.target;
        return target;
    };
    CalloutContentBase.defaultProps = {
        preventDismissOnLostFocus: false,
        preventDismissOnScroll: false,
        preventDismissOnResize: false,
        isBeakVisible: true,
        beakWidth: 16,
        gapSpace: 0,
        minPagePadding: 8,
        directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_2__["DirectionalHint"].bottomAutoEdge
    };
    return CalloutContentBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Callout/CalloutContent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CalloutContent", function() { return CalloutContent; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _CalloutContent_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Callout/CalloutContent.base.js");
/* harmony import */ var _CalloutContent_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Callout/CalloutContent.styles.js");



var CalloutContent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_CalloutContent_base__WEBPACK_IMPORTED_MODULE_1__["CalloutContentBase"], _CalloutContent_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'CalloutContent' });


/***/ }),

/***/ "./lib/components/Callout/CalloutContent.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

function getBeakStyle(beakWidth) {
    return {
        height: beakWidth,
        width: beakWidth
    };
}
var GlobalClassNames = {
    container: 'ms-Callout-container',
    root: 'ms-Callout',
    beak: 'ms-Callout-beak',
    beakCurtain: 'ms-Callout-beakCurtain',
    calloutMain: 'ms-Callout-main'
};
var getStyles = function (props) {
    var _a;
    var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var semanticColors = theme.semanticColors, effects = theme.effects;
    return {
        container: [
            classNames.container,
            {
                position: 'relative'
            }
        ],
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                position: 'absolute',
                boxSizing: 'border-box',
                borderRadius: effects.roundedCorner2,
                boxShadow: effects.elevation16,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderWidth: 1,
                        borderStyle: 'solid',
                        borderColor: 'WindowText'
                    },
                    _a)
            },
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["focusClear"])(),
            className,
            !!calloutWidth && { width: calloutWidth },
            !!calloutMaxWidth && { maxWidth: calloutMaxWidth }
        ],
        beak: [
            classNames.beak,
            {
                position: 'absolute',
                backgroundColor: semanticColors.menuBackground,
                boxShadow: 'inherit',
                border: 'inherit',
                boxSizing: 'border-box',
                transform: 'rotate(45deg)'
            },
            getBeakStyle(beakWidth),
            backgroundColor && {
                backgroundColor: backgroundColor
            }
        ],
        beakCurtain: [
            classNames.beakCurtain,
            {
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
                backgroundColor: semanticColors.menuBackground,
                borderRadius: effects.roundedCorner2
            }
        ],
        calloutMain: [
            classNames.calloutMain,
            {
                backgroundColor: semanticColors.menuBackground,
                overflowX: 'hidden',
                overflowY: 'auto',
                position: 'relative',
                borderRadius: effects.roundedCorner2
            },
            overflowYHidden && {
                overflowY: 'hidden'
            },
            backgroundColor && {
                backgroundColor: backgroundColor
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Callout/FocusTrapCallout.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusTrapCallout", function() { return FocusTrapCallout; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Callout/Callout.js");
/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusTrapZone.js");




/**
 * A special Callout that uses FocusTrapZone to trap focus
 * @param props - Props for the component
 */
var FocusTrapCallout = function (props) {
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_2__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props),
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone__WEBPACK_IMPORTED_MODULE_3__["FocusTrapZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ disabled: props.hidden }, props.focusTrapProps), props.children)));
};


/***/ }),

/***/ "./lib/components/Callout/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Callout/Callout.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Callout", function() { return _Callout__WEBPACK_IMPORTED_MODULE_0__["Callout"]; });

/* harmony import */ var _FocusTrapCallout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Callout/FocusTrapCallout.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapCallout", function() { return _FocusTrapCallout__WEBPACK_IMPORTED_MODULE_1__["FocusTrapCallout"]; });

/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_2__["DirectionalHint"]; });






/***/ }),

/***/ "./lib/components/Check/Check.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckBase", function() { return CheckBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var CheckBase = function (props) {
    var _a = props.checked, checked = _a === void 0 ? false : _a, className = props.className, theme = props.theme, styles = props.styles, _b = props.useFastIcons, useFastIcons = _b === void 0 ? true : _b;
    var classNames = getClassNames(styles, { theme: theme, className: className, checked: checked });
    var IconComponent = useFastIcons ? _Icon__WEBPACK_IMPORTED_MODULE_1__["FontIcon"] : _Icon__WEBPACK_IMPORTED_MODULE_1__["Icon"];
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.root },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"](IconComponent, { iconName: "CircleRing", className: classNames.circle }),
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"](IconComponent, { iconName: "StatusCircleCheckmark", className: classNames.check })));
};


/***/ }),

/***/ "./lib/components/Check/Check.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Check", function() { return Check; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCheck", function() { return getCheck; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Check_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Check/Check.base.js");
/* harmony import */ var _Check_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Check/Check.styles.js");




var Check = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["styled"])(_Check_base__WEBPACK_IMPORTED_MODULE_2__["CheckBase"], _Check_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"], undefined, {
    scope: 'Check'
}, true);
/**
 * Memoized helper for rendering a Check. Always uses fast icons.
 * @param theme - Theme, so the check can be re-rendered if it changes.
 * @param checked - Whether the check is checked.
 * @param className - Class name for styling the check.
 */
var getCheck = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, checked, className) {
    return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](Check, { theme: theme, checked: checked, className: className, useFastIcons: true });
});


/***/ }),

/***/ "./lib/components/Check/Check.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckGlobalClassNames", function() { return CheckGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var CheckGlobalClassNames = {
    root: 'ms-Check',
    circle: 'ms-Check-circle',
    check: 'ms-Check-check',
    /** Must be manually applied to the parent element of the check. */
    checkHost: 'ms-Check-checkHost'
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var _f = props.height, height = _f === void 0 ? props.checkBoxHeight || '18px' : _f, checked = props.checked, className = props.className, theme = props.theme;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])();
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(CheckGlobalClassNames, theme);
    var sharedCircleCheck = {
        fontSize: height,
        position: 'absolute',
        left: 0,
        top: 0,
        width: height,
        height: height,
        textAlign: 'center',
        verticalAlign: 'middle'
    };
    return {
        root: [
            classNames.root,
            fonts.medium,
            {
                // lineHeight currently needs to be a string to output without 'px'
                lineHeight: '1',
                width: height,
                height: height,
                verticalAlign: 'top',
                position: 'relative',
                userSelect: 'none',
                selectors: (_a = {
                        ':before': {
                            content: '""',
                            position: 'absolute',
                            top: '1px',
                            right: '1px',
                            bottom: '1px',
                            left: '1px',
                            borderRadius: '50%',
                            opacity: 1,
                            background: semanticColors.bodyBackground
                        }
                    },
                    _a["." + classNames.checkHost + ":hover &, ." + classNames.checkHost + ":focus &, &:hover, &:focus"] = {
                        opacity: 1
                    },
                    _a)
            },
            checked && [
                'is-checked',
                {
                    selectors: {
                        ':before': {
                            background: palette.themePrimary,
                            opacity: 1,
                            selectors: (_b = {},
                                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    background: 'Window'
                                },
                                _b)
                        }
                    }
                }
            ],
            className
        ],
        circle: [
            classNames.circle,
            sharedCircleCheck,
            {
                color: palette.neutralSecondary,
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'WindowText'
                    },
                    _c)
            },
            checked && {
                color: palette.white
            }
        ],
        check: [
            classNames.check,
            sharedCircleCheck,
            {
                opacity: 0,
                color: palette.neutralSecondary,
                fontSize: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].medium,
                left: isRTL ? '-0.5px' : '.5px',
                selectors: (_d = {
                        ':hover': {
                            opacity: 1
                        }
                    },
                    _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        MsHighContrastAdjust: 'none'
                    },
                    _d)
            },
            checked && {
                opacity: 1,
                color: palette.white,
                fontWeight: 900,
                selectors: (_e = {},
                    _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: 'none',
                        color: 'WindowText'
                    },
                    _e)
            }
        ],
        checkHost: classNames.checkHost
    };
};


/***/ }),

/***/ "./lib/components/Check/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Check/Check.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Check", function() { return _Check__WEBPACK_IMPORTED_MODULE_0__["Check"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCheck", function() { return _Check__WEBPACK_IMPORTED_MODULE_0__["getCheck"]; });

/* harmony import */ var _Check_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Check/Check.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBase", function() { return _Check_base__WEBPACK_IMPORTED_MODULE_1__["CheckBase"]; });





/***/ }),

/***/ "./lib/components/Checkbox/Checkbox.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxBase", function() { return CheckboxBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/KeytipData.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var CheckboxBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CheckboxBase, _super);
    /**
     * Initialize a new instance of the Checkbox
     * @param props - Props for the component
     * @param context - Context or initial state for the base component.
     */
    function CheckboxBase(props, context) {
        var _this = _super.call(this, props, context) || this;
        _this._checkBox = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onFocus = function (ev) {
            var inputProps = _this.props.inputProps;
            if (inputProps && inputProps.onFocus) {
                inputProps.onFocus(ev);
            }
        };
        _this._onBlur = function (ev) {
            var inputProps = _this.props.inputProps;
            if (inputProps && inputProps.onBlur) {
                inputProps.onBlur(ev);
            }
        };
        _this._onChange = function (ev) {
            var onChange = _this.props.onChange;
            var _a = _this.state, isChecked = _a.isChecked, isIndeterminate = _a.isIndeterminate;
            if (!isIndeterminate) {
                if (onChange) {
                    onChange(ev, !isChecked);
                }
                if (_this.props.checked === undefined) {
                    _this.setState({ isChecked: !isChecked });
                }
            }
            else {
                // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if
                // controlled, lets the consumer know to change it by calling onChange). It doesn't
                // change the checked state.
                if (onChange) {
                    onChange(ev, isChecked);
                }
                if (_this.props.indeterminate === undefined) {
                    _this.setState({ isIndeterminate: false });
                }
            }
        };
        _this._onRenderLabel = function (props) {
            var label = props.label;
            return label ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { "aria-hidden": "true", className: _this._classNames.text }, label)) : null;
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnMutuallyExclusive"])('Checkbox', props, {
                checked: 'defaultChecked',
                indeterminate: 'defaultIndeterminate'
            });
        }
        _this._id = _this.props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('checkbox-');
        _this.state = {
            isChecked: !!(props.checked !== undefined ? props.checked : props.defaultChecked),
            isIndeterminate: !!(props.indeterminate !== undefined ? props.indeterminate : props.defaultIndeterminate)
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeFocusRects"])();
        return _this;
    }
    CheckboxBase.getDerivedStateFromProps = function (nextProps, prevState) {
        var stateUpdate = {};
        if (nextProps.indeterminate !== undefined) {
            stateUpdate.isIndeterminate = !!nextProps.indeterminate;
        }
        if (nextProps.checked !== undefined) {
            stateUpdate.isChecked = !!nextProps.checked;
        }
        return Object.keys(stateUpdate).length ? stateUpdate : null;
    };
    /**
     * Render the Checkbox based on passed props
     */
    CheckboxBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, className = _a.className, disabled = _a.disabled, inputProps = _a.inputProps, name = _a.name, boxSide = _a.boxSide, theme = _a.theme, ariaLabel = _a.ariaLabel, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, styles = _a.styles, _b = _a.onRenderLabel, onRenderLabel = _b === void 0 ? this._onRenderLabel : _b, checkmarkIconProps = _a.checkmarkIconProps, ariaPositionInSet = _a.ariaPositionInSet, ariaSetSize = _a.ariaSetSize, keytipProps = _a.keytipProps, title = _a.title, label = _a.label;
        var _c = this.state, isChecked = _c.isChecked, isIndeterminate = _c.isIndeterminate;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            disabled: disabled,
            indeterminate: isIndeterminate,
            checked: isChecked,
            reversed: boxSide !== 'start',
            isUsingCustomLabelRender: onRenderLabel !== this._onRenderLabel
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_4__["KeytipData"], { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.root, title: title },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ type: "checkbox" }, inputProps, { "data-ktp-execute-target": keytipAttributes['data-ktp-execute-target'], checked: isChecked, disabled: disabled, className: _this._classNames.input, ref: _this._checkBox, name: name, id: _this._id, title: title, onChange: _this._onChange, onFocus: _this._onFocus, onBlur: _this._onBlur, "aria-disabled": disabled, "aria-label": ariaLabel || label, "aria-labelledby": ariaLabelledBy, "aria-describedby": Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(ariaDescribedBy, keytipAttributes['aria-describedby']), "aria-posinset": ariaPositionInSet, "aria-setsize": ariaSetSize, "aria-checked": isIndeterminate ? 'mixed' : isChecked ? 'true' : 'false' })),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("label", { className: _this._classNames.label, htmlFor: _this._id },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.checkbox, "data-ktp-target": keytipAttributes['data-ktp-target'] },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: "CheckMark" }, checkmarkIconProps, { className: _this._classNames.checkmark }))),
                onRenderLabel(_this.props, _this._onRenderLabel)))); }));
    };
    Object.defineProperty(CheckboxBase.prototype, "indeterminate", {
        get: function () {
            return !!this.state.isIndeterminate;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(CheckboxBase.prototype, "checked", {
        get: function () {
            return !!this.state.isChecked;
        },
        enumerable: true,
        configurable: true
    });
    CheckboxBase.prototype.focus = function () {
        if (this._checkBox.current) {
            this._checkBox.current.focus();
        }
    };
    CheckboxBase.defaultProps = {
        boxSide: 'start'
    };
    return CheckboxBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Checkbox/Checkbox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return Checkbox; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Checkbox_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Checkbox/Checkbox.base.js");
/* harmony import */ var _Checkbox_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Checkbox/Checkbox.styles.js");



var Checkbox = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Checkbox_base__WEBPACK_IMPORTED_MODULE_1__["CheckboxBase"], _Checkbox_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'Checkbox' });


/***/ }),

/***/ "./lib/components/Checkbox/Checkbox.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-Checkbox',
    label: 'ms-Checkbox-label',
    checkbox: 'ms-Checkbox-checkbox',
    checkmark: 'ms-Checkbox-checkmark',
    text: 'ms-Checkbox-text'
};
var MS_CHECKBOX_LABEL_SIZE = '20px';
var MS_CHECKBOX_TRANSITION_DURATION = '200ms';
var MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
    var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;
    var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var checkmarkFontColor = semanticColors.inputForegroundChecked;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder
    var checkmarkFontColorHovered = palette.neutralSecondary;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder
    var checkboxBorderColor = palette.neutralPrimary;
    var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;
    var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;
    var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;
    var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;
    var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;
    var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;
    // TODO: after updating the semanticColors slots mapping following 2 tokens need to be semanticColors.inputBackgroundCheckedHovered
    var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;
    var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;
    var checkboxHoveredTextColor = semanticColors.inputTextHovered;
    var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;
    var checkboxTextColor = semanticColors.bodyText;
    var checkboxTextColorDisabled = semanticColors.disabledText;
    var indeterminateDotStyles = [
        {
            content: '""',
            borderRadius: effects.roundedCorner2,
            position: 'absolute',
            width: 10,
            height: 10,
            top: 4,
            left: 4,
            boxSizing: 'border-box',
            borderWidth: 5,
            borderStyle: 'solid',
            borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,
            transitionProperty: 'border-width, border, border-color',
            transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,
            transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING
        }
    ];
    return {
        root: [
            classNames.root,
            {
                position: 'relative',
                display: 'flex'
            },
            reversed && 'reversed',
            checked && 'is-checked',
            !disabled && 'is-enabled',
            disabled && 'is-disabled',
            !disabled && [
                !checked && {
                    selectors: (_a = {},
                        _a[":hover ." + classNames.checkbox] = {
                            borderColor: checkboxBorderHoveredColor,
                            selectors: (_b = {},
                                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    borderColor: 'Highlight'
                                },
                                _b)
                        },
                        _a[":focus ." + classNames.checkbox] = { borderColor: checkboxBorderHoveredColor },
                        _a[":hover ." + classNames.checkmark] = {
                            color: checkmarkFontColorHovered,
                            opacity: '1',
                            selectors: (_c = {},
                                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    color: 'Highlight'
                                },
                                _c)
                        },
                        _a)
                },
                checked &&
                    !indeterminate && {
                    selectors: (_d = {},
                        _d[":hover ." + classNames.checkbox] = {
                            background: checkboxBackgroundCheckedHovered,
                            borderColor: checkboxBorderColorCheckedHovered
                        },
                        _d[":focus ." + classNames.checkbox] = {
                            background: checkboxBackgroundCheckedHovered,
                            borderColor: checkboxBorderColorCheckedHovered
                        },
                        _d["." + classNames.checkbox] = {
                            background: checkboxBorderColorChecked,
                            borderColor: checkboxBorderColorChecked
                        },
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            selectors: (_e = {},
                                _e[":hover ." + classNames.checkbox] = {
                                    background: 'Window',
                                    borderColor: 'Highlight'
                                },
                                _e[":focus ." + classNames.checkbox] = {
                                    background: 'Highlight'
                                },
                                _e[":focus:hover ." + classNames.checkbox] = {
                                    background: 'Highlight'
                                },
                                _e[":focus:hover ." + classNames.checkmark] = {
                                    color: 'Window'
                                },
                                _e[":hover ." + classNames.checkmark] = {
                                    color: 'Highlight'
                                },
                                _e)
                        },
                        _d)
                },
                indeterminate && {
                    selectors: (_f = {},
                        _f[":hover ." + classNames.checkbox + ", :hover ." + classNames.checkbox + ":after"] = {
                            borderColor: checkboxBorderIndeterminateHoveredColor
                        },
                        _f[":focus ." + classNames.checkbox] = {
                            borderColor: checkboxBorderIndeterminateHoveredColor
                        },
                        _f[":hover ." + classNames.checkmark] = {
                            opacity: '0'
                        },
                        _f)
                },
                {
                    selectors: (_g = {},
                        _g[":hover ." + classNames.text] = { color: checkboxHoveredTextColor },
                        _g[":focus ." + classNames.text] = { color: checkboxHoveredTextColor },
                        _g)
                }
            ],
            className
        ],
        input: {
            position: 'absolute',
            background: 'none',
            opacity: 0,
            selectors: (_h = {},
                _h["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus + label::before"] = {
                    outline: '1px solid ' + theme.palette.neutralSecondary,
                    outlineOffset: '2px',
                    selectors: (_j = {},
                        _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            outline: '1px solid ActiveBorder'
                        },
                        _j)
                },
                _h)
        },
        label: [
            classNames.label,
            theme.fonts.medium,
            {
                display: 'flex',
                alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',
                cursor: disabled ? 'default' : 'pointer',
                position: 'relative',
                userSelect: 'none',
                textAlign: 'left'
            },
            reversed && {
                flexDirection: 'row-reverse',
                justifyContent: 'flex-end'
            },
            {
                selectors: {
                    '&::before': {
                        position: 'absolute',
                        left: 0,
                        right: 0,
                        top: 0,
                        bottom: 0,
                        content: '""',
                        pointerEvents: 'none'
                    }
                }
            }
        ],
        checkbox: [
            classNames.checkbox,
            {
                position: 'relative',
                display: 'flex',
                flexShrink: 0,
                alignItems: 'center',
                justifyContent: 'center',
                height: MS_CHECKBOX_LABEL_SIZE,
                width: MS_CHECKBOX_LABEL_SIZE,
                border: "1px solid " + checkboxBorderColor,
                borderRadius: effects.roundedCorner2,
                boxSizing: 'border-box',
                transitionProperty: 'background, border, border-color',
                transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,
                transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,
                /* in case the icon is bigger than the box */
                overflow: 'hidden',
                selectors: {
                    ':after': indeterminate ? indeterminateDotStyles : null
                }
            },
            indeterminate && {
                borderColor: checkboxBorderIndeterminateColor
            },
            !reversed
                ? // this margin on the checkbox is for backwards compat.
                    // notably it has the effect where a customRender is used, there will be only a 4px margin from checkbox to label.
                    // the label by default would have another 4px margin for a total of 8px margin between checkbox and label.
                    // we don't combine the two (and move it into the text) to not incur a breaking change for everyone using custom render atm.
                    {
                        marginRight: 4
                    }
                : {
                    marginLeft: 4
                },
            !disabled &&
                !indeterminate &&
                checked && {
                background: checkboxBackgroundChecked,
                borderColor: checkboxBorderColorChecked,
                selectors: (_k = {},
                    _k[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        background: 'Highlight',
                        borderColor: 'Highlight'
                    },
                    _k)
            },
            disabled && {
                borderColor: checkboxBorderColorDisabled,
                selectors: (_l = {},
                    _l[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'InactiveBorder'
                    },
                    _l)
            },
            checked &&
                disabled && {
                background: checkboxBackgroundDisabledChecked,
                borderColor: checkboxBorderColorDisabled
            }
        ],
        checkmark: [
            classNames.checkmark,
            {
                opacity: checked ? '1' : '0',
                color: checkmarkFontColor,
                selectors: (_m = {},
                    _m[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: disabled ? 'InactiveBorder' : 'Window',
                        MsHighContrastAdjust: 'none'
                    },
                    _m)
            }
        ],
        text: [
            classNames.text,
            {
                color: disabled ? checkboxTextColorDisabled : checkboxTextColor,
                fontSize: fonts.medium.fontSize,
                lineHeight: '20px'
            },
            !reversed
                ? {
                    marginLeft: 4
                }
                : {
                    marginRight: 4
                },
            disabled && {
                selectors: (_o = {},
                    _o[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        // backwards compat for the color of the text when the checkbox was rendered
                        // using a Button.
                        color: 'InactiveBorder'
                    },
                    _o)
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Checkbox/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Checkbox/Checkbox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return _Checkbox__WEBPACK_IMPORTED_MODULE_0__["Checkbox"]; });

/* harmony import */ var _Checkbox_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Checkbox/Checkbox.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxBase", function() { return _Checkbox_base__WEBPACK_IMPORTED_MODULE_1__["CheckboxBase"]; });





/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroup.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupBase", function() { return ChoiceGroupBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/index.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
/**
 * {@docCategory ChoiceGroup}
 */
var ChoiceGroupBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ChoiceGroupBase, _super);
    function ChoiceGroupBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusCallbacks = {};
        _this._changeCallbacks = {};
        _this._onBlur = function (ev, option) {
            _this.setState({
                keyFocused: undefined
            });
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["warnDeprecations"])('ChoiceGroup', props, { onChanged: 'onChange' });
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["warnMutuallyExclusive"])('ChoiceGroup', props, {
                selectedKey: 'defaultSelectedKey'
            });
        }
        var defaultSelectedKey = props.defaultSelectedKey, _a = props.options, options = _a === void 0 ? [] : _a;
        var validDefaultSelectedKey = !_isControlled(props) && defaultSelectedKey !== undefined && options.some(function (option) { return option.key === defaultSelectedKey; });
        _this.state = {
            keyChecked: validDefaultSelectedKey ? defaultSelectedKey : _this._getKeyChecked(props)
        };
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('ChoiceGroup');
        _this._labelId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('ChoiceGroupLabel');
        return _this;
    }
    Object.defineProperty(ChoiceGroupBase.prototype, "checkedOption", {
        /**
         * Gets the current checked option.
         */
        get: function () {
            var _this = this;
            var _a = this.props.options, options = _a === void 0 ? [] : _a;
            return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["find"])(options, function (value) { return value.key === _this.state.keyChecked; });
        },
        enumerable: true,
        configurable: true
    });
    ChoiceGroupBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        // Only update if a new props object has been passed in (don't care about state updates)
        if (prevProps !== this.props) {
            var newKeyChecked = this._getKeyChecked(this.props);
            var oldKeyChecked = this._getKeyChecked(prevProps);
            if (newKeyChecked !== oldKeyChecked) {
                this.setState({
                    keyChecked: newKeyChecked
                });
            }
        }
    };
    ChoiceGroupBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, className = _a.className, theme = _a.theme, styles = _a.styles, _b = _a.options, options = _b === void 0 ? [] : _b, label = _a.label, required = _a.required, disabled = _a.disabled, name = _a.name;
        var _c = this.state, keyChecked = _c.keyChecked, keyFocused = _c.keyFocused;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"], ['onChange', 'className', 'required']);
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); })
        });
        var labelId = this._id + '-label';
        var ariaLabelledBy = this.props.ariaLabelledBy || (label ? labelId : this.props['aria-labelledby']);
        // TODO (Fabric 8?) - if possible, move `root` class to the actual root and eliminate
        // `applicationRole` class (but the div structure will stay the same by necessity)
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: classNames.applicationRole }, divProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: classNames.root, role: "radiogroup" }, ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }),
                label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_2__["Label"], { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.flexContainer }, options.map(function (option) {
                    var innerOptionProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, option, { focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: _this._getOptionId(option), labelId: _this._labelId + "-" + option.key, name: name || _this._id, required: required });
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_4__["ChoiceGroupOption"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: option.key, onBlur: _this._onBlur, onFocus: _this._onFocus(option.key), onChange: _this._onChange(option.key) }, innerOptionProps)));
                })))));
    };
    ChoiceGroupBase.prototype.focus = function () {
        var _a = this.props.options, options = _a === void 0 ? [] : _a;
        var optionToFocus = this.checkedOption || options.filter(function (option) { return !option.disabled; })[0];
        var elementToFocus = optionToFocus && document.getElementById(this._getOptionId(optionToFocus));
        if (elementToFocus) {
            elementToFocus.focus();
        }
    };
    ChoiceGroupBase.prototype._onFocus = function (key) {
        var _this = this;
        // This extra mess is necessary because React won't pass the `key` prop through to ChoiceGroupOption
        if (!this._focusCallbacks[key]) {
            this._focusCallbacks[key] = function (ev, option) {
                _this.setState({
                    keyFocused: key
                });
            };
        }
        return this._focusCallbacks[key];
    };
    ChoiceGroupBase.prototype._onChange = function (key) {
        var _this = this;
        // This extra mess is necessary because React won't pass the `key` prop through to ChoiceGroupOption
        if (!this._changeCallbacks[key]) {
            this._changeCallbacks[key] = function (evt, option) {
                var _a = _this.props, onChanged = _a.onChanged, onChange = _a.onChange;
                // Only manage state in uncontrolled scenarios.
                if (!_isControlled(_this.props)) {
                    _this.setState({
                        keyChecked: key
                    });
                }
                // Get the original option without the `key` prop removed
                var originalOption = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["find"])(_this.props.options || [], function (value) { return value.key === key; });
                // TODO: onChanged deprecated, remove else if after 07/17/2017 when onChanged has been removed.
                if (onChange) {
                    onChange(evt, originalOption);
                }
                else if (onChanged) {
                    onChanged(originalOption, evt);
                }
            };
        }
        return this._changeCallbacks[key];
    };
    /**
     * Returns `selectedKey` if provided, or the key of the first option with the `checked` prop set.
     */
    ChoiceGroupBase.prototype._getKeyChecked = function (props) {
        if (props.selectedKey !== undefined) {
            return props.selectedKey;
        }
        var _a = props.options, options = _a === void 0 ? [] : _a;
        var optionsChecked = options.filter(function (option) { return option.checked; });
        return optionsChecked[0] && optionsChecked[0].key;
    };
    ChoiceGroupBase.prototype._getOptionId = function (option) {
        return this._id + "-" + option.key;
    };
    return ChoiceGroupBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

function _isControlled(props) {
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isControlled"])(props, 'selectedKey');
}


/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroup", function() { return ChoiceGroup; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ChoiceGroup_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroup.base.js");
/* harmony import */ var _ChoiceGroup_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroup.styles.js");



var ChoiceGroup = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ChoiceGroup_base__WEBPACK_IMPORTED_MODULE_1__["ChoiceGroupBase"], _ChoiceGroup_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ChoiceGroup' });


/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroup.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ChoiceFieldGroup',
    flexContainer: 'ms-ChoiceFieldGroup-flexContainer'
};
var getStyles = function (props) {
    var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        // TODO (Fabric 8?) - merge className back into `root` and apply root style to
        // the actual root role=application element
        applicationRole: className,
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                display: 'block'
            }
        ],
        flexContainer: [
            classNames.flexContainer,
            optionsContainIconOrImage && {
                display: 'flex',
                flexDirection: 'row',
                flexWrap: 'wrap'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOptionBase", function() { return ChoiceGroupOptionBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Image.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["classNamesFunction"])();
/**
 * {@docCategory ChoiceGroup}
 */
var ChoiceGroupOptionBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ChoiceGroupOptionBase, _super);
    function ChoiceGroupOptionBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onChange = function (evt) {
            var onChange = _this.props.onChange;
            if (onChange) {
                onChange(evt, _this.props);
            }
        };
        _this._onBlur = function (evt) {
            var onBlur = _this.props.onBlur;
            if (onBlur) {
                onBlur(evt, _this.props);
            }
        };
        _this._onFocus = function (evt) {
            var onFocus = _this.props.onFocus;
            if (onFocus) {
                onFocus(evt, _this.props);
            }
        };
        _this._onRenderField = function (props) {
            var _a = props.onRenderLabel, onRenderLabel = _a === void 0 ? _this._onRenderLabel : _a, id = props.id, imageSrc = props.imageSrc, _b = props.imageAlt, imageAlt = _b === void 0 ? '' : _b, selectedImageSrc = props.selectedImageSrc, iconProps = props.iconProps;
            var imageSize = props.imageSize ? props.imageSize : { width: 32, height: 32 };
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("label", { htmlFor: id, className: _this._classNames.field },
                imageSrc && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.innerField },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.imageWrapper },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_2__["Image"], { src: imageSrc, alt: imageAlt, width: imageSize.width, height: imageSize.height })),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.selectedImageWrapper },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_2__["Image"], { src: selectedImageSrc, alt: imageAlt, width: imageSize.width, height: imageSize.height })))),
                iconProps && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.innerField },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.iconWrapper },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconProps))))),
                imageSrc || iconProps ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.labelWrapper }, onRenderLabel(props)) : onRenderLabel(props)));
        };
        _this._onRenderLabel = function (props) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: props.labelId, className: "ms-ChoiceFieldLabel" }, props.text));
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["initializeComponentRef"])(_this);
        return _this;
    }
    ChoiceGroupOptionBase.prototype.render = function () {
        var _a = this.props, ariaLabel = _a.ariaLabel, focused = _a.focused, required = _a.required, theme = _a.theme, iconProps = _a.iconProps, imageSrc = _a.imageSrc, _b = _a.imageSize, imageSize = _b === void 0 ? { width: 32, height: 32 } : _b, disabled = _a.disabled, checked = _a.checked, id = _a.id, styles = _a.styles, name = _a.name, _c = _a.onRenderField, onRenderField = _c === void 0 ? this._onRenderField : _c, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["ariaLabel", "focused", "required", "theme", "iconProps", "imageSrc", "imageSize", "disabled", "checked", "id", "styles", "name", "onRenderField"]);
        this._classNames = getClassNames(styles, {
            theme: theme,
            hasIcon: !!iconProps,
            hasImage: !!imageSrc,
            checked: checked,
            disabled: disabled,
            imageIsLarge: !!imageSrc && (imageSize.width > 71 || imageSize.height > 71),
            imageSize: imageSize,
            focused: focused
        });
        var _d = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getNativeProps"])(rest, _Utilities__WEBPACK_IMPORTED_MODULE_4__["inputProperties"]), className = _d.className, nativeProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_d, ["className"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.choiceFieldWrapper },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "aria-label": ariaLabel, id: id, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["css"])(this._classNames.input, className), type: "radio", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: this._onChange, onFocus: this._onFocus, onBlur: this._onBlur })),
                onRenderField(this.props, this._onRenderField))));
    };
    return ChoiceGroupOptionBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return ChoiceGroupOption; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ChoiceGroupOption_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js");
/* harmony import */ var _ChoiceGroupOption_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js");



var ChoiceGroupOption = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ChoiceGroupOption_base__WEBPACK_IMPORTED_MODULE_1__["ChoiceGroupOptionBase"], _ChoiceGroupOption_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ChoiceGroupOption' });


/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-ChoiceField',
    choiceFieldWrapper: 'ms-ChoiceField-wrapper',
    input: 'ms-ChoiceField-input',
    field: 'ms-ChoiceField-field',
    innerField: 'ms-ChoiceField-innerField',
    imageWrapper: 'ms-ChoiceField-imageWrapper',
    iconWrapper: 'ms-ChoiceField-iconWrapper',
    labelWrapper: 'ms-ChoiceField-labelWrapper',
    checked: 'is-checked'
};
var labelWrapperLineHeight = 15;
var iconSize = 32;
var choiceFieldSize = 20;
var choiceFieldTransitionDuration = '200ms';
var choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';
var radioButtonSpacing = 3;
var radioButtonInnerSize = 5;
function getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {
    var _a, _b;
    return [
        'is-inFocus',
        {
            selectors: (_a = {},
                _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &"] = {
                    position: 'relative',
                    outline: 'transparent',
                    selectors: {
                        '::-moz-focus-inner': {
                            border: 0
                        },
                        ':after': {
                            content: '""',
                            top: -2,
                            right: -2,
                            bottom: -2,
                            left: -2,
                            pointerEvents: 'none',
                            border: "1px solid " + focusBorderColor,
                            position: 'absolute',
                            selectors: (_b = {},
                                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    borderColor: 'WindowText',
                                    borderWidth: hasIconOrImage ? 1 : 2
                                },
                                _b)
                        }
                    }
                },
                _a)
        }
    ];
}
function getImageWrapperStyle(isSelectedImageWrapper, className, checked) {
    return [
        className,
        {
            paddingBottom: 2,
            transitionProperty: 'opacity',
            transitionDuration: choiceFieldTransitionDuration,
            transitionTimingFunction: 'ease',
            selectors: {
                '.ms-Image': {
                    display: 'inline-block',
                    borderStyle: 'none'
                }
            }
        },
        (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [
            'is-hidden',
            {
                position: 'absolute',
                left: 0,
                top: 0,
                width: '100%',
                height: '100%',
                overflow: 'hidden',
                opacity: 0
            }
        ]
    ];
}
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    // Tokens
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder
    var circleBorderColor = palette.neutralPrimary;
    var circleHoveredBorderColor = semanticColors.inputBorderHovered;
    var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered
    var circleCheckedHoveredBorderColor = palette.themeDark;
    var circleDisabledBorderColor = semanticColors.disabledBodySubtext;
    var circleBackgroundColor = semanticColors.bodyBackground;
    var dotUncheckedHoveredColor = palette.neutralSecondary;
    var dotCheckedColor = semanticColors.inputBackgroundChecked;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered
    var dotCheckedHoveredColor = palette.themeDark;
    var dotDisabledColor = semanticColors.disabledBodySubtext;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked
    var labelHoverFocusColor = palette.neutralDark;
    var focusBorderColor = semanticColors.focusBorder;
    var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered
    var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;
    var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;
    var iconOrImageChoiceBackgroundColor = palette.neutralLighter;
    var fieldHoverOrFocusProperties = {
        selectors: {
            '.ms-ChoiceFieldLabel': {
                color: labelHoverFocusColor
            },
            ':before': {
                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor
            },
            ':after': [
                !hasIcon &&
                    !hasImage &&
                    !checked && {
                    content: '""',
                    transitionProperty: 'background-color',
                    left: 5,
                    top: 5,
                    width: 10,
                    height: 10,
                    backgroundColor: dotUncheckedHoveredColor
                },
                checked && {
                    borderColor: dotCheckedHoveredColor
                }
            ]
        }
    };
    var enabledFieldWithImageHoverOrFocusProperties = {
        borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,
        selectors: {
            ':before': {
                opacity: 1,
                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor
            }
        }
    };
    var circleAreaProperties = [
        {
            content: '""',
            display: 'inline-block',
            backgroundColor: circleBackgroundColor,
            borderWidth: 1,
            borderStyle: 'solid',
            borderColor: circleBorderColor,
            width: choiceFieldSize,
            height: choiceFieldSize,
            fontWeight: 'normal',
            position: 'absolute',
            top: 0,
            left: 0,
            boxSizing: 'border-box',
            transitionProperty: 'border-color',
            transitionDuration: choiceFieldTransitionDuration,
            transitionTimingFunction: choiceFieldTransitionTiming,
            borderRadius: '50%'
        },
        disabled && {
            borderColor: circleDisabledBorderColor,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText'
                },
                _a)
        },
        checked && {
            borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight'
                },
                _b)
        },
        (hasIcon || hasImage) && {
            top: radioButtonSpacing,
            right: radioButtonSpacing,
            left: 'auto',
            opacity: checked ? 1 : 0
        }
    ];
    var dotAreaProperties = [
        {
            content: '""',
            width: 0,
            height: 0,
            borderRadius: '50%',
            position: 'absolute',
            left: choiceFieldSize / 2,
            right: 0,
            transitionProperty: 'border-width',
            transitionDuration: choiceFieldTransitionDuration,
            transitionTimingFunction: choiceFieldTransitionTiming,
            boxSizing: 'border-box'
        },
        checked && {
            borderWidth: 5,
            borderStyle: 'solid',
            borderColor: disabled ? dotDisabledColor : dotCheckedColor,
            left: 5,
            top: 5,
            width: 10,
            height: 10,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight'
                },
                _c)
        },
        checked &&
            (hasIcon || hasImage) && {
            top: radioButtonSpacing + radioButtonInnerSize,
            right: radioButtonSpacing + radioButtonInnerSize,
            left: 'auto' // To reset the value of 'left' to its default value, so that 'right' works
        }
    ];
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                display: 'flex',
                alignItems: 'center',
                boxSizing: 'border-box',
                color: semanticColors.bodyText,
                minHeight: 26,
                border: 'none',
                position: 'relative',
                marginTop: 8,
                selectors: {
                    '.ms-ChoiceFieldLabel': {
                        display: 'inline-block'
                    }
                }
            },
            !hasIcon &&
                !hasImage && {
                selectors: {
                    '.ms-ChoiceFieldLabel': {
                        paddingLeft: '26px'
                    }
                }
            },
            hasImage && 'ms-ChoiceField--image',
            hasIcon && 'ms-ChoiceField--icon',
            (hasIcon || hasImage) && {
                display: 'inline-flex',
                fontSize: 0,
                margin: '0 4px 4px 0',
                paddingLeft: 0,
                backgroundColor: iconOrImageChoiceBackgroundColor,
                height: '100%'
            }
        ],
        choiceFieldWrapper: [classNames.choiceFieldWrapper, focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage)],
        // The hidden input
        input: [
            classNames.input,
            {
                position: 'absolute',
                opacity: 0,
                top: 0,
                right: 0,
                width: '100%',
                height: '100%',
                margin: 0
            },
            disabled && 'is-disabled'
        ],
        field: [
            classNames.field,
            checked && classNames.checked,
            {
                display: 'inline-block',
                cursor: 'pointer',
                marginTop: 0,
                position: 'relative',
                verticalAlign: 'top',
                userSelect: 'none',
                minHeight: 20,
                selectors: {
                    ':hover': !disabled && fieldHoverOrFocusProperties,
                    ':focus': !disabled && fieldHoverOrFocusProperties,
                    // The circle
                    ':before': circleAreaProperties,
                    // The dot
                    ':after': dotAreaProperties
                }
            },
            hasIcon && 'ms-ChoiceField--icon',
            hasImage && 'ms-ChoiceField-field--image',
            (hasIcon || hasImage) && {
                boxSizing: 'content-box',
                cursor: 'pointer',
                paddingTop: 22,
                margin: 0,
                textAlign: 'center',
                transitionProperty: 'all',
                transitionDuration: choiceFieldTransitionDuration,
                transitionTimingFunction: 'ease',
                border: '1px solid transparent',
                justifyContent: 'center',
                alignItems: 'center',
                display: 'flex',
                flexDirection: 'column'
            },
            checked && {
                borderColor: iconOrImageChoiceBorderCheckedColor
            },
            (hasIcon || hasImage) &&
                !disabled && {
                selectors: {
                    ':hover': enabledFieldWithImageHoverOrFocusProperties,
                    ':focus': enabledFieldWithImageHoverOrFocusProperties
                }
            },
            disabled && {
                cursor: 'default',
                selectors: (_d = {
                        '.ms-ChoiceFieldLabel': {
                            color: semanticColors.disabledBodyText
                        }
                    },
                    _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText'
                    },
                    _d)
            },
            checked &&
                disabled && {
                borderColor: iconOrImageChoiceBackgroundColor
            }
        ],
        innerField: [
            classNames.innerField,
            hasImage && {
                height: imageSize.height,
                width: imageSize.width
            },
            (hasIcon || hasImage) && {
                position: 'relative',
                display: 'inline-block',
                paddingLeft: 30,
                paddingRight: 30
            },
            (hasIcon || hasImage) &&
                imageIsLarge && {
                paddingLeft: 24,
                paddingRight: 24
            },
            (hasIcon || hasImage) &&
                disabled && {
                opacity: 0.25,
                selectors: (_e = {},
                    _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText',
                        opacity: 1
                    },
                    _e)
            }
        ],
        imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),
        selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),
        iconWrapper: [
            classNames.iconWrapper,
            {
                fontSize: iconSize,
                lineHeight: iconSize,
                height: iconSize
            }
        ],
        labelWrapper: [
            classNames.labelWrapper,
            fonts.medium,
            (hasIcon || hasImage) && {
                display: 'block',
                position: 'relative',
                margin: '4px 8px',
                height: labelWrapperLineHeight * 2,
                lineHeight: labelWrapperLineHeight,
                maxWidth: imageSize.width * 2,
                overflow: 'hidden',
                whiteSpace: 'pre-wrap',
                textOverflow: 'ellipsis'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/ChoiceGroup/ChoiceGroupOption/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ChoiceGroupOption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _ChoiceGroupOption__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupOption"]; });




/***/ }),

/***/ "./lib/components/ChoiceGroup/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ChoiceGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroup", function() { return _ChoiceGroup__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroup"]; });

/* harmony import */ var _ChoiceGroup_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroup.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupBase", function() { return _ChoiceGroup_base__WEBPACK_IMPORTED_MODULE_1__["ChoiceGroupBase"]; });

/* harmony import */ var _ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ChoiceGroup/ChoiceGroupOption/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _ChoiceGroupOption_index__WEBPACK_IMPORTED_MODULE_2__["ChoiceGroupOption"]; });






/***/ }),

/***/ "./lib/components/Coachmark/Beak/Beak.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BEAK_HEIGHT", function() { return BEAK_HEIGHT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BEAK_WIDTH", function() { return BEAK_WIDTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Beak", function() { return Beak; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Beak_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Coachmark/Beak/Beak.styles.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/positioning.js");





var BEAK_HEIGHT = 10;
var BEAK_WIDTH = 18;
var Beak = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Beak, _super);
    function Beak(props) {
        return _super.call(this, props) || this;
    }
    Beak.prototype.render = function () {
        var _a = this.props, left = _a.left, top = _a.top, bottom = _a.bottom, right = _a.right, color = _a.color, _b = _a.direction, direction = _b === void 0 ? _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].top : _b;
        var svgHeight;
        var svgWidth;
        if (direction === _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].top || direction === _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].bottom) {
            svgHeight = BEAK_HEIGHT;
            svgWidth = BEAK_WIDTH;
        }
        else {
            svgHeight = BEAK_WIDTH;
            svgWidth = BEAK_HEIGHT;
        }
        var pointOne;
        var pointTwo;
        var pointThree;
        var transform;
        switch (direction) {
            case _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].top:
            default:
                pointOne = BEAK_WIDTH / 2 + ", 0";
                pointTwo = BEAK_WIDTH + ", " + BEAK_HEIGHT;
                pointThree = "0, " + BEAK_HEIGHT;
                transform = 'translateY(-100%)';
                break;
            case _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].right:
                pointOne = "0, 0";
                pointTwo = BEAK_HEIGHT + ", " + BEAK_HEIGHT;
                pointThree = "0, " + BEAK_WIDTH;
                transform = 'translateX(100%)';
                break;
            case _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].bottom:
                pointOne = "0, 0";
                pointTwo = BEAK_WIDTH + ", 0";
                pointThree = BEAK_WIDTH / 2 + ", " + BEAK_HEIGHT;
                transform = 'translateY(100%)';
                break;
            case _utilities_positioning__WEBPACK_IMPORTED_MODULE_4__["RectangleEdge"].left:
                pointOne = BEAK_HEIGHT + ", 0";
                pointTwo = "0, " + BEAK_HEIGHT;
                pointThree = BEAK_HEIGHT + ", " + BEAK_WIDTH;
                transform = 'translateX(-100%)';
                break;
        }
        var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
        var classNames = getClassNames(_Beak_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"], {
            left: left,
            top: top,
            bottom: bottom,
            right: right,
            height: svgHeight + "px",
            width: svgWidth + "px",
            transform: transform,
            color: color
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, role: "presentation" },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("svg", { height: svgHeight, width: svgWidth, className: classNames.beak },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("polygon", { points: pointOne + ' ' + pointTwo + ' ' + pointThree }))));
    };
    return Beak;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Coachmark/Beak/Beak.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
function getStyles(props) {
    return {
        root: [
            {
                position: 'absolute',
                boxShadow: 'inherit',
                border: 'none',
                boxSizing: 'border-box',
                transform: props.transform,
                width: props.width,
                height: props.height,
                left: props.left,
                top: props.top,
                right: props.right,
                bottom: props.bottom
            }
        ],
        beak: {
            fill: props.color,
            display: 'block'
        }
    };
}


/***/ }),

/***/ "./lib/components/Coachmark/Coachmark.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_ATTRIBUTE_NAME", function() { return COACHMARK_ATTRIBUTE_NAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CoachmarkBase", function() { return CoachmarkBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/positioning.js");
/* harmony import */ var _PositioningContainer_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Coachmark/PositioningContainer/index.js");
/* harmony import */ var _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Coachmark/Beak/Beak.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Coachmark/Coachmark.styles.js");
/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/FocusTrapZone.js");

// Utilities



// Component Dependencies





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var COACHMARK_ATTRIBUTE_NAME = 'data-coachmarkid';
var CoachmarkBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CoachmarkBase, _super);
    function CoachmarkBase(props) {
        var _this = _super.call(this, props) || this;
        /**
         * The cached HTMLElement reference to the Entity Inner Host
         * element.
         */
        _this._entityHost = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._entityInnerHostElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._translateAnimationContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._ariaAlertContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._childrenContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._positioningContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.dismiss = function (ev) {
            var onDismiss = _this.props.onDismiss;
            if (onDismiss) {
                onDismiss(ev);
            }
        };
        _this._onKeyDown = function (e) {
            // Open coachmark if user presses ALT + C (arbitrary keypress for now)
            if ((e.altKey && e.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].c) ||
                (e.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter &&
                    _this._translateAnimationContainer.current &&
                    _this._translateAnimationContainer.current.contains(e.target))) {
                _this._onFocusHandler();
            }
        };
        _this._onFocusHandler = function () {
            if (_this.state.isCollapsed) {
                _this._openCoachmark();
            }
        };
        _this._onPositioned = function (positionData) {
            _this._async.requestAnimationFrame(function () {
                _this.setState({
                    targetAlignment: positionData.alignmentEdge,
                    targetPosition: positionData.targetEdge
                });
            });
        };
        _this._setBeakPosition = function () {
            var beakLeft;
            var beakTop;
            var beakRight;
            var beakBottom;
            var transformOriginX;
            var transformOriginY;
            var targetAlignment = _this.state.targetAlignment;
            var distanceAdjustment = '3px'; // Adjustment distance for Beak to shift towards Coachmark bubble.
            switch (_this._beakDirection) {
                // If Beak is pointing Up or Down
                case _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top:
                case _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom:
                    // If there is no target alignment, then beak is X-axis centered in callout
                    if (!targetAlignment) {
                        beakLeft = "calc(50% - " + _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px)";
                        transformOriginX = 'center';
                    }
                    else {
                        // Beak is aligned to the left of target
                        if (targetAlignment === _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left) {
                            beakLeft = _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_WIDTH"] / 2 - _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px";
                            transformOriginX = 'left';
                        }
                        else {
                            // Beak is aligned to the right of target
                            beakRight = _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_WIDTH"] / 2 - _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px";
                            transformOriginX = 'right';
                        }
                    }
                    if (_this._beakDirection === _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top) {
                        beakTop = distanceAdjustment;
                        transformOriginY = 'top';
                    }
                    else {
                        beakBottom = distanceAdjustment;
                        transformOriginY = 'bottom';
                    }
                    break;
                // If Beak is pointing Left or Right
                case _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left:
                case _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right:
                    // If there is no target alignment, then beak is Y-axis centered in callout
                    if (!targetAlignment) {
                        beakTop = "calc(50% - " + _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px)";
                        transformOriginY = "center";
                    }
                    else {
                        // Beak is aligned to the top of target
                        if (targetAlignment === _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top) {
                            beakTop = _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_WIDTH"] / 2 - _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px";
                            transformOriginY = "top";
                        }
                        else {
                            // Beak is aligned to the bottom of target
                            beakBottom = _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_WIDTH"] / 2 - _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_WIDTH"] / 2 + "px";
                            transformOriginY = "bottom";
                        }
                    }
                    if (_this._beakDirection === _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left) {
                        if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()) {
                            beakRight = distanceAdjustment;
                        }
                        else {
                            beakLeft = distanceAdjustment;
                        }
                        transformOriginX = 'left';
                    }
                    else {
                        if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()) {
                            beakLeft = distanceAdjustment;
                        }
                        else {
                            beakRight = distanceAdjustment;
                        }
                        transformOriginX = 'right';
                    }
                    break;
            }
            _this.setState({
                beakLeft: beakLeft,
                beakRight: beakRight,
                beakBottom: beakBottom,
                beakTop: beakTop,
                transformOrigin: transformOriginX + " " + transformOriginY
            });
        };
        _this._openCoachmark = function () {
            _this.setState({
                isCollapsed: false
            });
            if (_this.props.onAnimationOpenStart) {
                _this.props.onAnimationOpenStart();
            }
            _this._entityInnerHostElement.current &&
                _this._entityInnerHostElement.current.addEventListener('transitionend', function () {
                    // Need setTimeout to trigger narrator
                    _this._async.setTimeout(function () {
                        if (_this._entityInnerHostElement.current) {
                            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["focusFirstChild"])(_this._entityInnerHostElement.current);
                        }
                    }, 1000);
                    if (_this.props.onAnimationOpenEnd) {
                        _this.props.onAnimationOpenEnd();
                    }
                });
        };
        _this._warnDeprecations({
            teachingBubbleRef: undefined,
            collapsed: 'isCollapsed',
            beakWidth: undefined,
            beakHeight: undefined,
            width: undefined,
            height: undefined
        });
        // Set defaults for state
        _this.state = {
            isCollapsed: props.isCollapsed,
            isBeaconAnimating: true,
            isMeasuring: true,
            entityInnerHostRect: {
                width: 0,
                height: 0
            },
            isMouseInProximity: false,
            isMeasured: false
        };
        return _this;
    }
    Object.defineProperty(CoachmarkBase.prototype, "_beakDirection", {
        get: function () {
            var targetPosition = this.state.targetPosition;
            if (targetPosition === undefined) {
                return _utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom;
            }
            return Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_3__["getOppositeEdge"])(targetPosition);
        },
        enumerable: true,
        configurable: true
    });
    CoachmarkBase.prototype.render = function () {
        var _a = this.props, beaconColorOne = _a.beaconColorOne, beaconColorTwo = _a.beaconColorTwo, children = _a.children, target = _a.target, color = _a.color, positioningContainerProps = _a.positioningContainerProps, ariaDescribedBy = _a.ariaDescribedBy, ariaDescribedByText = _a.ariaDescribedByText, ariaLabelledBy = _a.ariaLabelledBy, ariaLabelledByText = _a.ariaLabelledByText, ariaAlertText = _a.ariaAlertText, delayBeforeCoachmarkAnimation = _a.delayBeforeCoachmarkAnimation, styles = _a.styles, theme = _a.theme, className = _a.className;
        var _b = this.state, beakLeft = _b.beakLeft, beakTop = _b.beakTop, beakRight = _b.beakRight, beakBottom = _b.beakBottom, isCollapsed = _b.isCollapsed, isBeaconAnimating = _b.isBeaconAnimating, isMeasuring = _b.isMeasuring, entityInnerHostRect = _b.entityInnerHostRect, transformOrigin = _b.transformOrigin, alertText = _b.alertText, isMeasured = _b.isMeasured;
        // Defaulting the main background before passing it to the styles because it is used for `Beak` too.
        var defaultColor = color;
        if (!defaultColor && theme) {
            defaultColor = theme.semanticColors.primaryButtonBackground;
        }
        var classNames = getClassNames(styles, {
            theme: theme,
            beaconColorOne: beaconColorOne,
            beaconColorTwo: beaconColorTwo,
            className: className,
            isCollapsed: isCollapsed,
            isBeaconAnimating: isBeaconAnimating,
            isMeasuring: isMeasuring,
            color: defaultColor,
            transformOrigin: transformOrigin,
            isMeasured: isMeasured,
            entityHostHeight: entityInnerHostRect.height + "px",
            entityHostWidth: entityInnerHostRect.width + "px",
            width: _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_WIDTH"] + "px",
            height: _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_HEIGHT"] + "px",
            delayBeforeCoachmarkAnimation: delayBeforeCoachmarkAnimation + "ms"
        });
        var finalHeight = isCollapsed ? _Coachmark_styles__WEBPACK_IMPORTED_MODULE_7__["COACHMARK_HEIGHT"] : entityInnerHostRect.height;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PositioningContainer_index__WEBPACK_IMPORTED_MODULE_4__["PositioningContainer"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ target: target, offsetFromTarget: _Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["BEAK_HEIGHT"], componentRef: this._positioningContainer, finalHeight: finalHeight, onPositioned: this._onPositioned, bounds: this._getBounds() }, positioningContainerProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
                ariaAlertText && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.ariaContainer, role: "alert", ref: this._ariaAlertContainer, "aria-hidden": !isCollapsed }, alertText)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.pulsingBeacon }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.translateAnimationContainer, ref: this._translateAnimationContainer },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.scaleAnimationLayer },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.rotateAnimationLayer },
                            this._positioningContainer.current && isCollapsed && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Beak_Beak__WEBPACK_IMPORTED_MODULE_5__["Beak"], { left: beakLeft, top: beakTop, right: beakRight, bottom: beakBottom, direction: this._beakDirection, color: defaultColor })),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.entityHost, ref: this._entityHost, tabIndex: -1, "data-is-focusable": true, role: "dialog", "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy },
                                isCollapsed && [
                                    ariaLabelledBy && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { id: ariaLabelledBy, key: 0, className: classNames.ariaContainer }, ariaLabelledByText)),
                                    ariaDescribedBy && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { id: ariaDescribedBy, key: 1, className: classNames.ariaContainer }, ariaDescribedByText))
                                ],
                                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone__WEBPACK_IMPORTED_MODULE_8__["FocusTrapZone"], { isClickableOutsideFocusTrap: true, forceFocusInsideTrap: false },
                                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.entityInnerHost, ref: this._entityInnerHostElement },
                                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.childrenContainer, ref: this._childrenContainer, "aria-hidden": isCollapsed }, children))))))))));
    };
    // tslint:disable-next-line function-name
    CoachmarkBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (this.props.isCollapsed && !newProps.isCollapsed) {
            // The coachmark is about to open
            this._openCoachmark();
        }
    };
    CoachmarkBase.prototype.shouldComponentUpdate = function (newProps, newState) {
        return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["shallowCompare"])(newProps, this.props) || !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["shallowCompare"])(newState, this.state);
    };
    CoachmarkBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        if (prevState.targetAlignment !== this.state.targetAlignment || prevState.targetPosition !== this.state.targetPosition) {
            this._setBeakPosition();
        }
        if (prevProps.preventDismissOnLostFocus !== this.props.preventDismissOnLostFocus) {
            this._addListeners();
        }
    };
    CoachmarkBase.prototype.componentDidMount = function () {
        var _this = this;
        this._async.requestAnimationFrame(function () {
            if (_this._entityInnerHostElement.current && _this.state.entityInnerHostRect.width + _this.state.entityInnerHostRect.width === 0) {
                _this.setState({
                    isMeasuring: false,
                    entityInnerHostRect: {
                        width: _this._entityInnerHostElement.current.offsetWidth,
                        height: _this._entityInnerHostElement.current.offsetHeight
                    },
                    isMeasured: true
                });
                _this._setBeakPosition();
                _this.forceUpdate();
            }
            _this._addListeners();
            // We don't want to the user to immediately trigger the Coachmark when it's opened
            _this._async.setTimeout(function () {
                _this._addProximityHandler(_this.props.mouseProximityOffset);
            }, _this.props.delayBeforeMouseOpen);
            // Need to add setTimeout to have narrator read change in alert container
            if (_this.props.ariaAlertText) {
                _this._async.setTimeout(function () {
                    if (_this.props.ariaAlertText && _this._ariaAlertContainer.current) {
                        _this.setState({
                            alertText: _this.props.ariaAlertText
                        });
                    }
                }, 0);
            }
            if (!_this.props.preventFocusOnMount) {
                _this._async.setTimeout(function () {
                    if (_this._entityHost.current) {
                        _this._entityHost.current.focus();
                    }
                }, 1000);
            }
        });
    };
    CoachmarkBase.prototype._addListeners = function () {
        var preventDismissOnLostFocus = this.props.preventDismissOnLostFocus;
        var currentDoc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])();
        this._events.off();
        if (currentDoc) {
            this._events.on(currentDoc, 'keydown', this._onKeyDown, true);
            if (!preventDismissOnLostFocus) {
                this._events.on(currentDoc, 'click', this._dismissOnLostFocus, true);
                this._events.on(currentDoc, 'focus', this._dismissOnLostFocus, true);
            }
        }
    };
    CoachmarkBase.prototype._dismissOnLostFocus = function (ev) {
        var clickTarget = ev.target;
        var clickedOutsideCallout = this._translateAnimationContainer.current && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._translateAnimationContainer.current, clickTarget);
        var target = this.props.target;
        if (clickedOutsideCallout && clickTarget !== target && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(target, clickTarget)) {
            this.dismiss(ev);
        }
    };
    CoachmarkBase.prototype._getBounds = function () {
        var _a = this.props, isPositionForced = _a.isPositionForced, positioningContainerProps = _a.positioningContainerProps;
        if (isPositionForced) {
            // If directionalHint direction is the top or bottom auto edge, then we want to set the left/right bounds
            // to the window x-axis to have auto positioning work correctly.
            if (positioningContainerProps &&
                (positioningContainerProps.directionalHint === _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"].topAutoEdge ||
                    positioningContainerProps.directionalHint === _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"].bottomAutoEdge)) {
                return {
                    left: 0,
                    top: -Infinity,
                    bottom: Infinity,
                    right: window.innerWidth,
                    width: window.innerWidth,
                    height: Infinity
                };
            }
            else {
                return {
                    left: -Infinity,
                    top: -Infinity,
                    bottom: Infinity,
                    right: Infinity,
                    width: Infinity,
                    height: Infinity
                };
            }
        }
        else {
            return undefined;
        }
    };
    CoachmarkBase.prototype._addProximityHandler = function (mouseProximityOffset) {
        var _this = this;
        if (mouseProximityOffset === void 0) { mouseProximityOffset = 0; }
        /**
         * An array of cached ids returned when setTimeout runs during
         * the window resize event trigger.
         */
        var timeoutIds = [];
        // Take the initial measure out of the initial render to prevent
        // an unnecessary render.
        this._async.setTimeout(function () {
            _this._setTargetElementRect();
            // When the window resizes we want to async
            // get the bounding client rectangle.
            // Every time the event is triggered we want to
            // setTimeout and then clear any previous instances
            // of setTimeout.
            _this._events.on(window, 'resize', function () {
                timeoutIds.forEach(function (value) {
                    clearInterval(value);
                });
                timeoutIds.push(_this._async.setTimeout(function () {
                    _this._setTargetElementRect();
                }, 100));
            });
        }, 10);
        // Every time the document's mouse move is triggered
        // we want to check if inside of an element and
        // set the state with the result.
        this._events.on(document, 'mousemove', function (e) {
            if (_this.state.isCollapsed) {
                var mouseY = e.clientY;
                var mouseX = e.clientX;
                _this._setTargetElementRect();
                var isMouseInProximity = _this._isInsideElement(mouseX, mouseY, mouseProximityOffset);
                if (isMouseInProximity !== _this.state.isMouseInProximity) {
                    _this._openCoachmark();
                }
            }
            if (_this.props.onMouseMove) {
                _this.props.onMouseMove(e);
            }
        });
    };
    CoachmarkBase.prototype._setTargetElementRect = function () {
        if (this._translateAnimationContainer && this._translateAnimationContainer.current) {
            this._targetElementRect = this._translateAnimationContainer.current.getBoundingClientRect();
        }
    };
    CoachmarkBase.prototype._isInsideElement = function (mouseX, mouseY, mouseProximityOffset) {
        if (mouseProximityOffset === void 0) { mouseProximityOffset = 0; }
        return (mouseX > this._targetElementRect.left - mouseProximityOffset &&
            mouseX < this._targetElementRect.left + this._targetElementRect.width + mouseProximityOffset &&
            mouseY > this._targetElementRect.top - mouseProximityOffset &&
            mouseY < this._targetElementRect.top + this._targetElementRect.height + mouseProximityOffset);
    };
    CoachmarkBase.defaultProps = {
        isCollapsed: true,
        mouseProximityOffset: 10,
        delayBeforeMouseOpen: 3600,
        delayBeforeCoachmarkAnimation: 0,
        isPositionForced: true,
        positioningContainerProps: {
            directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"].bottomAutoEdge
        }
    };
    return CoachmarkBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Coachmark/Coachmark.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Coachmark", function() { return Coachmark; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Coachmark_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Coachmark/Coachmark.styles.js");
/* harmony import */ var _Coachmark_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Coachmark/Coachmark.base.js");



var Coachmark = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Coachmark_base__WEBPACK_IMPORTED_MODULE_2__["CoachmarkBase"], _Coachmark_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'Coachmark'
});


/***/ }),

/***/ "./lib/components/Coachmark/Coachmark.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_WIDTH", function() { return COACHMARK_WIDTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_HEIGHT", function() { return COACHMARK_HEIGHT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "translateOne", function() { return translateOne; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scaleOne", function() { return scaleOne; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateOne", function() { return rotateOne; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var COACHMARK_WIDTH = 32;
var COACHMARK_HEIGHT = 32;
var translateOne = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        transform: 'translate(0, 0)',
        animationTimingFunction: 'linear'
    },
    '78.57%': {
        transform: 'translate(0, 0)',
        animationTimingFunction: 'cubic-bezier(0.62, 0, 0.56, 1)'
    },
    '82.14%': {
        transform: 'translate(0, -5px)',
        animationTimingFunction: 'cubic-bezier(0.58, 0, 0, 1)'
    },
    '84.88%': {
        transform: 'translate(0, 9px)',
        animationTimingFunction: 'cubic-bezier(1, 0, 0.56, 1)'
    },
    '88.1%': {
        transform: 'translate(0, -2px)',
        animationTimingFunction: 'cubic-bezier(0.58, 0, 0.67, 1)'
    },
    '90.12%': {
        transform: 'translate(0, 0)',
        animationTimingFunction: 'linear'
    },
    '100%': {
        transform: 'translate(0, 0)'
    }
});
var scaleOne = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        transform: ' scale(0)',
        animationTimingFunction: 'linear'
    },
    '14.29%': {
        transform: 'scale(0)',
        animationTimingFunction: 'cubic-bezier(0.84, 0, 0.52, 0.99)'
    },
    '16.67%': {
        transform: 'scale(1.15)',
        animationTimingFunction: 'cubic-bezier(0.48, -0.01, 0.52, 1.01)'
    },
    '19.05%': {
        transform: 'scale(0.95)',
        animationTimingFunction: 'cubic-bezier(0.48, 0.02, 0.52, 0.98)'
    },
    '21.43%': {
        transform: 'scale(1)',
        animationTimingFunction: 'linear'
    },
    '42.86%': {
        transform: 'scale(1)',
        animationTimingFunction: 'cubic-bezier(0.48, -0.02, 0.52, 1.02)'
    },
    '45.71%': {
        transform: 'scale(0.8)',
        animationTimingFunction: 'cubic-bezier(0.48, 0.01, 0.52, 0.99)'
    },
    '50%': {
        transform: 'scale(1)',
        animationTimingFunction: 'linear'
    },
    '90.12%': {
        transform: 'scale(1)',
        animationTimingFunction: 'cubic-bezier(0.48, -0.02, 0.52, 1.02)'
    },
    '92.98%': {
        transform: 'scale(0.8)',
        animationTimingFunction: 'cubic-bezier(0.48, 0.01, 0.52, 0.99)'
    },
    '97.26%': {
        transform: 'scale(1)',
        animationTimingFunction: 'linear'
    },
    '100%': {
        transform: 'scale(1)'
    }
});
var rotateOne = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        transform: 'rotate(0deg)',
        animationTimingFunction: 'linear'
    },
    '83.33%': {
        transform: ' rotate(0deg)',
        animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)'
    },
    '83.93%': {
        transform: 'rotate(15deg)',
        animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)'
    },
    '84.52%': {
        transform: 'rotate(-15deg)',
        animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)'
    },
    '85.12%': {
        transform: 'rotate(15deg)',
        animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)'
    },
    '85.71%': {
        transform: 'rotate(-15deg)',
        animationTimingFunction: 'cubic-bezier(0.33, 0, 0.67, 1)'
    },
    '86.31%': {
        transform: 'rotate(0deg)',
        animationTimingFunction: 'linear'
    },
    '100%': {
        transform: 'rotate(0deg)'
    }
});
function getStyles(props) {
    var _a;
    var theme = props.theme, className = props.className, color = props.color, beaconColorOne = props.beaconColorOne, beaconColorTwo = props.beaconColorTwo, delayBeforeCoachmarkAnimation = props.delayBeforeCoachmarkAnimation, isCollapsed = props.isCollapsed, isBeaconAnimating = props.isBeaconAnimating, isMeasuring = props.isMeasuring, isMeasured = props.isMeasured, entityHostHeight = props.entityHostHeight, entityHostWidth = props.entityHostWidth, transformOrigin = props.transformOrigin;
    if (!theme) {
        throw new Error('theme is undefined or null in base Dropdown getStyles function.');
    }
    var animationInnerDimension = '35px';
    var animationOuterDimension = '150px';
    var animationBorderWidth = '10px';
    var ContinuousPulse = _Styling__WEBPACK_IMPORTED_MODULE_0__["PulsingBeaconAnimationStyles"].continuousPulseAnimationDouble(beaconColorOne ? beaconColorOne : theme.palette.themePrimary, beaconColorTwo ? beaconColorTwo : theme.palette.themeTertiary, animationInnerDimension, animationOuterDimension, animationBorderWidth);
    var ContinuousPulseAnimation = _Styling__WEBPACK_IMPORTED_MODULE_0__["PulsingBeaconAnimationStyles"].createDefaultAnimation(ContinuousPulse, delayBeforeCoachmarkAnimation);
    return {
        root: [
            theme.fonts.medium,
            {
                position: 'relative'
            },
            className
        ],
        pulsingBeacon: [
            {
                position: 'absolute',
                top: '50%',
                left: '50%',
                transform: Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])() ? 'translate(50%, -50%)' : 'translate(-50%, -50%)',
                width: '0px',
                height: '0px',
                borderRadius: '225px',
                borderStyle: 'solid',
                opacity: '0'
            },
            isCollapsed && isBeaconAnimating && ContinuousPulseAnimation
        ],
        // Translate Animation Layer
        translateAnimationContainer: [
            {
                width: '100%',
                height: '100%'
            },
            isCollapsed && {
                animationDuration: '14s',
                animationTimingFunction: 'linear',
                animationDirection: 'normal',
                animationIterationCount: '1',
                animationDelay: '0s',
                animationFillMode: 'forwards',
                animationName: translateOne,
                transition: 'opacity 0.5s ease-in-out'
            },
            !isCollapsed && {
                opacity: '1'
            }
        ],
        // Scale Animation Layer
        scaleAnimationLayer: [
            {
                width: '100%',
                height: '100%'
            },
            isCollapsed && {
                animationDuration: '14s',
                animationTimingFunction: 'linear',
                animationDirection: 'normal',
                animationIterationCount: '1',
                animationDelay: '0s',
                animationFillMode: 'forwards',
                animationName: scaleOne
            }
        ],
        // Rotate Animation Layer
        rotateAnimationLayer: [
            {
                width: '100%',
                height: '100%'
            },
            isCollapsed && {
                animationDuration: '14s',
                animationTimingFunction: 'linear',
                animationDirection: 'normal',
                animationIterationCount: '1',
                animationDelay: '0s',
                animationFillMode: 'forwards',
                animationName: rotateOne
            },
            !isCollapsed && {
                opacity: '1'
            }
        ],
        // Layer Host, defaults to collapsed
        entityHost: [
            {
                position: 'relative',
                outline: 'none',
                overflow: 'hidden',
                backgroundColor: color,
                borderRadius: COACHMARK_WIDTH,
                transition: 'border-radius 250ms, width 500ms, height 500ms cubic-bezier(0.5, 0, 0, 1)',
                visibility: 'hidden',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'Window',
                        border: '2px solid WindowText'
                    },
                    _a)
            },
            !isMeasuring && {
                width: COACHMARK_WIDTH,
                height: COACHMARK_HEIGHT,
                visibility: 'visible'
            },
            !isCollapsed && {
                borderRadius: '1px',
                opacity: '1',
                width: entityHostWidth,
                height: entityHostHeight
            }
        ],
        entityInnerHost: [
            {
                transition: 'transform 500ms cubic-bezier(0.5, 0, 0, 1)',
                transformOrigin: transformOrigin,
                transform: 'scale(0)'
            },
            !isCollapsed && {
                width: entityHostWidth,
                height: entityHostHeight,
                transform: 'scale(1)'
            },
            !isMeasuring && {
                visibility: 'visible'
            }
        ],
        childrenContainer: [
            {
                display: isMeasured && isCollapsed ? 'none' : 'block'
            }
        ],
        ariaContainer: {
            position: 'fixed',
            opacity: 0,
            height: 0,
            width: 0,
            pointerEvents: 'none'
        }
    };
}


/***/ }),

/***/ "./lib/components/Coachmark/PositioningContainer/PositioningContainer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PositioningContainer", function() { return PositioningContainer; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _PositioningContainer_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Coachmark/PositioningContainer/PositioningContainer.styles.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Layer.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/positioning.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Styling.js");
var _a;




// Utilites/Helpers




var OFF_SCREEN_STYLE = { opacity: 0 };
// In order for some of the max height logic to work
// properly we need to set the border.
// The value is abitrary.
var BORDER_WIDTH = 1;
var SLIDE_ANIMATIONS = (_a = {},
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["RectangleEdge"].top] = 'slideUpIn20',
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["RectangleEdge"].bottom] = 'slideDownIn20',
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["RectangleEdge"].left] = 'slideLeftIn20',
    _a[_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["RectangleEdge"].right] = 'slideRightIn20',
    _a);
var PositioningContainer = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PositioningContainer, _super);
    function PositioningContainer(props) {
        var _this = _super.call(this, props) || this;
        /**
         * The primary positioned div.
         */
        _this._positionedHost = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // @TODO rename to reflect the name of this class
        _this._contentHost = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /**
         * Deprecated, use `onResize` instead.
         * @deprecated Use `onResize` instead.
         */
        _this.dismiss = function (ev) {
            _this.onResize(ev);
        };
        _this.onResize = function (ev) {
            var onDismiss = _this.props.onDismiss;
            if (onDismiss) {
                onDismiss(ev);
            }
            else {
                _this._updateAsyncPosition();
            }
        };
        _this._setInitialFocus = function () {
            if (_this._contentHost.current && _this.props.setInitialFocus && !_this._didSetInitialFocus && _this.state.positions) {
                _this._didSetInitialFocus = true;
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["focusFirstChild"])(_this._contentHost.current);
            }
        };
        _this._onComponentDidMount = function () {
            // This is added so the positioningContainer will dismiss when the window is scrolled
            // but not when something inside the positioningContainer is scrolled. The delay seems
            // to be required to avoid React firing an async focus event in IE from
            // the target changing focus quickly prior to rendering the positioningContainer.
            _this._async.setTimeout(function () {
                _this._events.on(_this._targetWindow, 'scroll', _this._async.throttle(_this._dismissOnScroll, 10), true);
                _this._events.on(_this._targetWindow, 'resize', _this._async.throttle(_this.onResize, 10), true);
                _this._events.on(_this._targetWindow.document.body, 'focus', _this._dismissOnLostFocus, true);
                _this._events.on(_this._targetWindow.document.body, 'click', _this._dismissOnLostFocus, true);
            }, 0);
            if (_this.props.onLayerMounted) {
                _this.props.onLayerMounted();
            }
            _this._updateAsyncPosition();
            _this._setHeightOffsetEveryFrame();
        };
        _this._didSetInitialFocus = false;
        _this.state = {
            positions: undefined,
            heightOffset: 0
        };
        _this._positionAttempts = 0;
        return _this;
    }
    // tslint:disable-next-line function-name
    PositioningContainer.prototype.UNSAFE_componentWillMount = function () {
        this._setTargetWindowAndElement(this._getTarget());
    };
    PositioningContainer.prototype.componentDidMount = function () {
        this._onComponentDidMount();
    };
    PositioningContainer.prototype.componentDidUpdate = function () {
        this._setInitialFocus();
        this._updateAsyncPosition();
    };
    // tslint:disable-next-line function-name
    PositioningContainer.prototype.UNSAFE_componentWillUpdate = function (newProps) {
        // If the target element changed, find the new one. If we are tracking
        // target with class name, always find element because we do not know if
        // fabric has rendered a new element and disposed the old element.
        var newTarget = this._getTarget(newProps);
        var oldTarget = this._getTarget();
        if (newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) {
            this._maxHeight = undefined;
            this._setTargetWindowAndElement(newTarget);
        }
        if (newProps.offsetFromTarget !== this.props.offsetFromTarget) {
            this._maxHeight = undefined;
        }
        if (newProps.finalHeight !== this.props.finalHeight) {
            this._setHeightOffsetEveryFrame();
        }
    };
    PositioningContainer.prototype.render = function () {
        // If there is no target window then we are likely in server side rendering and we should not render anything.
        if (!this._targetWindow) {
            return null;
        }
        var _a = this.props, className = _a.className, positioningContainerWidth = _a.positioningContainerWidth, positioningContainerMaxHeight = _a.positioningContainerMaxHeight, children = _a.children;
        var positions = this.state.positions;
        var styles = Object(_PositioningContainer_styles__WEBPACK_IMPORTED_MODULE_2__["getClassNames"])();
        var directionalClassName = positions && positions.targetEdge ? _Styling__WEBPACK_IMPORTED_MODULE_7__["AnimationClassNames"][SLIDE_ANIMATIONS[positions.targetEdge]] : '';
        var getContentMaxHeight = this._getMaxHeight() + this.state.heightOffset;
        var contentMaxHeight = positioningContainerMaxHeight && positioningContainerMaxHeight > getContentMaxHeight
            ? getContentMaxHeight
            : positioningContainerMaxHeight;
        var content = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._positionedHost, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["css"])('ms-PositioningContainer', styles.container) },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Styling__WEBPACK_IMPORTED_MODULE_7__["mergeStyles"])('ms-PositioningContainer-layerHost', styles.root, className, directionalClassName, !!positioningContainerWidth && { width: positioningContainerWidth }), 
                // tslint:disable-next-line:jsx-ban-props
                style: positions ? positions.elementPosition : OFF_SCREEN_STYLE, tabIndex: -1, 
                // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
                ref: this._contentHost },
                children,
                // @TODO apply to the content container
                contentMaxHeight)));
        return this.props.doNotLayer ? content : react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_3__["Layer"], null, content);
    };
    PositioningContainer.prototype._dismissOnScroll = function (ev) {
        var preventDismissOnScroll = this.props.preventDismissOnScroll;
        if (this.state.positions && !preventDismissOnScroll) {
            this._dismissOnLostFocus(ev);
        }
    };
    PositioningContainer.prototype._dismissOnLostFocus = function (ev) {
        var target = ev.target;
        var clickedOutsideCallout = this._positionedHost.current && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["elementContains"])(this._positionedHost.current, target);
        if ((!this._target && clickedOutsideCallout) ||
            (ev.target !== this._targetWindow &&
                clickedOutsideCallout &&
                (this._target.stopPropagation ||
                    (!this._target || (target !== this._target && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["elementContains"])(this._target, target)))))) {
            this.onResize(ev);
        }
    };
    PositioningContainer.prototype._updateAsyncPosition = function () {
        var _this = this;
        this._async.requestAnimationFrame(function () { return _this._updatePosition(); });
    };
    PositioningContainer.prototype._updatePosition = function () {
        var positions = this.state.positions;
        var _a = this.props, offsetFromTarget = _a.offsetFromTarget, onPositioned = _a.onPositioned;
        var hostElement = this._positionedHost.current;
        var positioningContainerElement = this._contentHost.current;
        if (hostElement && positioningContainerElement) {
            var currentProps = void 0;
            currentProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["assign"])(currentProps, this.props);
            currentProps.bounds = this._getBounds();
            currentProps.target = this._target;
            if (document.body.contains(currentProps.target)) {
                currentProps.gapSpace = offsetFromTarget;
                var newPositions_1 = Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["positionElement"])(currentProps, hostElement, positioningContainerElement);
                // Set the new position only when the positions are not exists or one of the new positioningContainer positions are different.
                // The position should not change if the position is within 2 decimal places.
                if ((!positions && newPositions_1) ||
                    (positions && newPositions_1 && !this._arePositionsEqual(positions, newPositions_1) && this._positionAttempts < 5)) {
                    // We should not reposition the positioningContainer more than a few times, if it is then the content is likely resizing
                    // and we should stop trying to reposition to prevent a stack overflow.
                    this._positionAttempts++;
                    this.setState({
                        positions: newPositions_1
                    }, function () {
                        if (onPositioned) {
                            onPositioned(newPositions_1);
                        }
                    });
                }
                else {
                    this._positionAttempts = 0;
                    if (onPositioned) {
                        onPositioned(newPositions_1);
                    }
                }
            }
            else if (positions !== undefined) {
                this.setState({
                    positions: undefined
                });
            }
        }
    };
    PositioningContainer.prototype._getBounds = function () {
        if (!this._positioningBounds) {
            var currentBounds = this.props.bounds;
            if (!currentBounds) {
                currentBounds = {
                    top: 0 + this.props.minPagePadding,
                    left: 0 + this.props.minPagePadding,
                    right: this._targetWindow.innerWidth - this.props.minPagePadding,
                    bottom: this._targetWindow.innerHeight - this.props.minPagePadding,
                    width: this._targetWindow.innerWidth - this.props.minPagePadding * 2,
                    height: this._targetWindow.innerHeight - this.props.minPagePadding * 2
                };
            }
            this._positioningBounds = currentBounds;
        }
        return this._positioningBounds;
    };
    /**
     * Return the maximum height the container can grow to
     * without going out of the specified bounds
     */
    PositioningContainer.prototype._getMaxHeight = function () {
        var _a = this.props, directionalHintFixed = _a.directionalHintFixed, offsetFromTarget = _a.offsetFromTarget, directionalHint = _a.directionalHint;
        if (!this._maxHeight) {
            if (directionalHintFixed && this._target) {
                var gapSpace = offsetFromTarget ? offsetFromTarget : 0;
                this._maxHeight = Object(_utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["getMaxHeight"])(this._target, directionalHint, gapSpace, this._getBounds());
            }
            else {
                this._maxHeight = this._getBounds().height - BORDER_WIDTH * 2;
            }
        }
        return this._maxHeight;
    };
    PositioningContainer.prototype._arePositionsEqual = function (positions, newPosition) {
        return this._comparePositions(positions.elementPosition, newPosition.elementPosition);
    };
    PositioningContainer.prototype._comparePositions = function (oldPositions, newPositions) {
        for (var key in newPositions) {
            // This needs to be checked here and below because there is a linting error if for in does not immediately have an if statement
            if (newPositions.hasOwnProperty(key)) {
                var oldPositionEdge = oldPositions[key];
                var newPositionEdge = newPositions[key];
                if (oldPositionEdge && newPositionEdge) {
                    if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {
                        return false;
                    }
                }
            }
        }
        return true;
    };
    PositioningContainer.prototype._setTargetWindowAndElement = function (target) {
        var currentElement = this._positionedHost.current;
        if (target) {
            if (typeof target === 'string') {
                var currentDoc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getDocument"])();
                this._target = currentDoc ? currentDoc.querySelector(target) : null;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
            }
            else if (target.stopPropagation) {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(target.toElement);
                this._target = target;
            }
            else if (target.x !== undefined && target.y !== undefined) {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
                this._target = target;
            }
            else {
                var targetElement = target;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(targetElement);
                this._target = target;
            }
        }
        else {
            this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
        }
    };
    /**
     * Animates the height if finalHeight was given.
     */
    PositioningContainer.prototype._setHeightOffsetEveryFrame = function () {
        var _this = this;
        if (this._contentHost && this.props.finalHeight) {
            this._setHeightOffsetTimer = this._async.requestAnimationFrame(function () {
                if (!_this._contentHost.current) {
                    return;
                }
                var positioningContainerMainElem = _this._contentHost.current.lastChild;
                var cardScrollHeight = positioningContainerMainElem.scrollHeight;
                var cardCurrHeight = positioningContainerMainElem.offsetHeight;
                var scrollDiff = cardScrollHeight - cardCurrHeight;
                _this.setState({
                    heightOffset: _this.state.heightOffset + scrollDiff
                });
                if (positioningContainerMainElem.offsetHeight < _this.props.finalHeight) {
                    _this._setHeightOffsetEveryFrame();
                }
                else {
                    _this._async.cancelAnimationFrame(_this._setHeightOffsetTimer);
                }
            });
        }
    };
    PositioningContainer.prototype._getTarget = function (props) {
        if (props === void 0) { props = this.props; }
        var target = props.target;
        return target;
    };
    PositioningContainer.defaultProps = {
        preventDismissOnScroll: false,
        offsetFromTarget: 0,
        minPagePadding: 8,
        directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomAutoEdge
    };
    return PositioningContainer;
}(_Utilities__WEBPACK_IMPORTED_MODULE_5__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Coachmark/PositioningContainer/PositioningContainer.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function () {
    var _a;
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyleSets"])({
        root: [
            {
                position: 'absolute',
                boxSizing: 'border-box',
                border: '1px solid ${}',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        border: '1px solid WindowText'
                    },
                    _a)
            },
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["focusClear"])()
        ],
        container: {
            position: 'relative'
        },
        main: {
            backgroundColor: '#ffffff',
            overflowX: 'hidden',
            overflowY: 'hidden',
            position: 'relative'
        },
        overFlowYHidden: {
            overflowY: 'hidden'
        }
    });
});


/***/ }),

/***/ "./lib/components/Coachmark/PositioningContainer/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _PositioningContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Coachmark/PositioningContainer/PositioningContainer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositioningContainer", function() { return _PositioningContainer__WEBPACK_IMPORTED_MODULE_0__["PositioningContainer"]; });




/***/ }),

/***/ "./lib/components/Coachmark/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Coachmark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Coachmark/Coachmark.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Coachmark", function() { return _Coachmark__WEBPACK_IMPORTED_MODULE_0__["Coachmark"]; });

/* harmony import */ var _Coachmark_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Coachmark/Coachmark.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_ATTRIBUTE_NAME", function() { return _Coachmark_base__WEBPACK_IMPORTED_MODULE_1__["COACHMARK_ATTRIBUTE_NAME"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CoachmarkBase", function() { return _Coachmark_base__WEBPACK_IMPORTED_MODULE_1__["CoachmarkBase"]; });





/***/ }),

/***/ "./lib/components/ColorPicker/ColorPicker.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPickerBase", function() { return ColorPickerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/TextField.js");
/* harmony import */ var _ColorRectangle_ColorRectangle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ColorPicker/ColorRectangle/ColorRectangle.js");
/* harmony import */ var _ColorSlider_ColorSlider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/ColorPicker/ColorSlider/ColorSlider.js");
/* harmony import */ var _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* harmony import */ var _utilities_color_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");
/* harmony import */ var _utilities_color_updateA__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/color/updateA.js");
/* harmony import */ var _utilities_color_updateH__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/utilities/color/updateH.js");
/* harmony import */ var _utilities_color_correctRGB__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/utilities/color/correctRGB.js");
/* harmony import */ var _utilities_color_correctHex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/color/correctHex.js");
/* harmony import */ var _ColorRectangle_ColorRectangle_base__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js");






// These imports are separated to help with bundling








var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var colorComponents = ['hex', 'r', 'g', 'b', 'a'];
/**
 * {@docCategory ColorPicker}
 */
var ColorPickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ColorPickerBase, _super);
    function ColorPickerBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onSVChanged = function (ev, color) {
            _this._updateColor(ev, color);
        };
        _this._onHChanged = function (ev, h) {
            _this._updateColor(ev, Object(_utilities_color_updateH__WEBPACK_IMPORTED_MODULE_10__["updateH"])(_this.state.color, h));
        };
        _this._onAChanged = function (ev, a) {
            _this._updateColor(ev, Object(_utilities_color_updateA__WEBPACK_IMPORTED_MODULE_9__["updateA"])(_this.state.color, Math.round(a)));
        };
        _this._onBlur = function (event) {
            var _a;
            var _b = _this.state, color = _b.color, editingColor = _b.editingColor;
            if (!editingColor) {
                return;
            }
            // If there was an intermediate incorrect value (such as too large or empty), correct it.
            var value = editingColor.value, component = editingColor.component;
            var isHex = component === 'hex';
            var minLength = isHex ? _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MIN_HEX_LENGTH"] : _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MIN_RGBA_LENGTH"];
            if (value.length >= minLength && (isHex || !isNaN(Number(value)))) {
                // Real value. Clamp to appropriate length (hex) or range (rgba).
                var newColor = void 0;
                if (isHex) {
                    newColor = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_7__["getColorFromString"])('#' + Object(_utilities_color_correctHex__WEBPACK_IMPORTED_MODULE_12__["correctHex"])(value));
                }
                else {
                    newColor = Object(_utilities_color_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_8__["getColorFromRGBA"])(Object(_utilities_color_correctRGB__WEBPACK_IMPORTED_MODULE_11__["correctRGB"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, color, (_a = {}, _a[component] = Number(value), _a))));
                }
                // Update state and call onChange
                _this._updateColor(event, newColor);
            }
            else {
                // Intermediate value was an empty string, too short (hex only), or just . (alpha only).
                // Just clear the intermediate state and revert to the previous value.
                _this.setState({ editingColor: undefined });
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this.state = {
            color: _getColorFromProps(props) || Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_7__["getColorFromString"])('#ffffff')
        };
        _this._textChangeHandlers = {};
        for (var _i = 0, colorComponents_1 = colorComponents; _i < colorComponents_1.length; _i++) {
            var component = colorComponents_1[_i];
            _this._textChangeHandlers[component] = _this._onTextChange.bind(_this, component);
        }
        var strings = props.strings; // always defined since it's in defaultProps
        var defaultStrings = ColorPickerBase.defaultProps.strings;
        _this._textLabels = {
            r: props.redLabel || strings.red || defaultStrings.red,
            g: props.greenLabel || strings.green || defaultStrings.green,
            b: props.blueLabel || strings.blue || defaultStrings.blue,
            a: props.alphaLabel || strings.alpha || defaultStrings.alpha,
            hex: props.hexLabel || strings.hex || defaultStrings.hex
        };
        _this._strings = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultStrings, strings);
        return _this;
    }
    Object.defineProperty(ColorPickerBase.prototype, "color", {
        get: function () {
            return this.state.color;
        },
        enumerable: true,
        configurable: true
    });
    ColorPickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        // if props changed (as opposed to a state update), update the color
        if (prevProps !== this.props) {
            var color = _getColorFromProps(this.props);
            if (color) {
                this._updateColor(undefined, color);
            }
        }
    };
    ColorPickerBase.prototype.render = function () {
        var _this = this;
        var props = this.props;
        var strings = this._strings;
        var textLabels = this._textLabels;
        var theme = props.theme, className = props.className, styles = props.styles, alphaSliderHidden = props.alphaSliderHidden;
        var color = this.state.color;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        var colorStr = color.str || '';
        // Space out hex and RGBA colors for more helpful reading
        var selectedColorAria = colorStr[0] === '#'
            ? colorStr.split('').join(' ')
            : colorStr.indexOf('rgba(') === 0
                ? "R G B A " + color.r + " " + color.g + " " + color.b + " " + color.a + "%"
                : colorStr;
        var ariaLabel = strings.rootAriaLabelFormat.replace('{0}', selectedColorAria);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, role: "group", "aria-label": ariaLabel },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.panel },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ColorRectangle_ColorRectangle__WEBPACK_IMPORTED_MODULE_4__["ColorRectangle"], { color: color, onChange: this._onSVChanged, ariaLabel: strings.svAriaLabel, ariaDescription: strings.svAriaDescription, ariaValueFormat: strings.svAriaValueFormat, className: classNames.colorRectangle }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.flexContainer },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.flexSlider },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ColorSlider_ColorSlider__WEBPACK_IMPORTED_MODULE_5__["ColorSlider"], { className: "is-hue", ariaLabel: strings.hue, minValue: 0, maxValue: _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_COLOR_HUE"], value: color.h, onChange: this._onHChanged }),
                        !alphaSliderHidden && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ColorSlider_ColorSlider__WEBPACK_IMPORTED_MODULE_5__["ColorSlider"], { className: "is-alpha", isAlpha: true, ariaLabel: textLabels.a, overlayColor: color.hex, minValue: 0, maxValue: _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_COLOR_ALPHA"], value: color.a, onChange: this._onAChanged }))),
                    props.showPreview && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.flexPreviewBox },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.colorSquare + ' is-preview', style: {
                                backgroundColor: color.str
                            } })))),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("table", { className: classNames.table, role: "group", cellPadding: "0", cellSpacing: "0" },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("thead", null,
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tr", { className: classNames.tableHeader },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", { className: classNames.tableHexCell }, textLabels.hex),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", null, textLabels.r),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", null, textLabels.g),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", null, textLabels.b),
                            !alphaSliderHidden && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", null, textLabels.a))),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tbody", null,
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tr", null, colorComponents.map(function (comp) {
                            if (comp === 'a' && alphaSliderHidden) {
                                return null;
                            }
                            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", { key: comp, style: comp === 'hex' ? undefined : { width: '18%' } },
                                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TextField__WEBPACK_IMPORTED_MODULE_3__["TextField"], { className: classNames.input, onChange: _this._textChangeHandlers[comp], onBlur: _this._onBlur, value: _this._getDisplayValue(comp), spellCheck: false, ariaLabel: textLabels[comp], autoComplete: "off" })));
                        })))))));
    };
    ColorPickerBase.prototype._getDisplayValue = function (component) {
        var _a = this.state, color = _a.color, editingColor = _a.editingColor;
        if (editingColor && editingColor.component === component) {
            return editingColor.value;
        }
        if (component === 'hex') {
            return color[component] || '';
        }
        else if (typeof color[component] === 'number' && !isNaN(color[component])) {
            return String(color[component]);
        }
        return '';
    };
    ColorPickerBase.prototype._onTextChange = function (component, event, newValue) {
        var _a;
        var color = this.state.color;
        var isHex = component === 'hex';
        var isAlpha = component === 'a';
        newValue = (newValue || '').substr(0, isHex ? _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_HEX_LENGTH"] : _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_RGBA_LENGTH"]);
        // Ignore what the user typed if it contains invalid characters
        var validCharsRegex = isHex ? _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["HEX_REGEX"] : _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["RGBA_REGEX"];
        if (!validCharsRegex.test(newValue)) {
            return;
        }
        // Determine if the entry is valid (different methods for hex, alpha, and RGB)
        var isValid;
        if (newValue === '') {
            // Empty string is obviously not valid
            isValid = false;
        }
        else if (isHex) {
            // Technically hex values of length 3 are also valid, but committing the value here would
            // cause it to be automatically converted to a value of length 6, which may not be what the
            // user wanted if they're not finished typing. (Values of length 3 will be committed on blur.)
            isValid = newValue.length === _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_HEX_LENGTH"];
        }
        else if (isAlpha) {
            isValid = Number(newValue) <= _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_COLOR_ALPHA"];
        }
        else {
            isValid = Number(newValue) <= _utilities_color_consts__WEBPACK_IMPORTED_MODULE_6__["MAX_COLOR_RGB"];
        }
        if (!isValid) {
            // If the new value is an empty string or other invalid value, save that to display.
            // (if the user still hasn't entered anything on blur, the last value is restored)
            this.setState({ editingColor: { component: component, value: newValue } });
        }
        else if (String(color[component]) === newValue) {
            // If the new value is the same as the current value, mostly ignore it.
            // Exception is that if the user was previously editing the value (but hadn't yet entered
            // a new valid value), we should clear the intermediate value.
            if (this.state.editingColor) {
                this.setState({ editingColor: undefined });
            }
        }
        else {
            // Should be a valid color. Update the value.
            var newColor = isHex
                ? Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_7__["getColorFromString"])('#' + newValue)
                : Object(_utilities_color_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_8__["getColorFromRGBA"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, color, (_a = {}, _a[component] = Number(newValue), _a)));
            this._updateColor(event, newColor);
        }
    };
    /**
     * Update the displayed color and call change handlers if appropriate.
     * @param ev - Event if call was triggered by an event (undefined if triggered by props change)
     * @param newColor - Updated color
     */
    ColorPickerBase.prototype._updateColor = function (ev, newColor) {
        if (!newColor) {
            return;
        }
        var _a = this.state, color = _a.color, editingColor = _a.editingColor;
        var isDifferentColor = newColor.h !== color.h || newColor.str !== color.str;
        if (isDifferentColor || editingColor) {
            // If ev is undefined, it's an update from props (which should be unconditionally respected
            // and not call onChange).
            if (ev && this.props.onChange) {
                this.props.onChange(ev, newColor);
                if (ev.defaultPrevented) {
                    return;
                }
            }
            this.setState({ color: newColor, editingColor: undefined });
        }
    };
    ColorPickerBase.defaultProps = {
        strings: {
            rootAriaLabelFormat: 'Color picker, {0} selected.',
            hex: 'Hex',
            red: 'Red',
            green: 'Green',
            blue: 'Blue',
            alpha: 'Alpha',
            hue: 'Hue',
            svAriaLabel: _ColorRectangle_ColorRectangle_base__WEBPACK_IMPORTED_MODULE_13__["ColorRectangleBase"].defaultProps.ariaLabel,
            svAriaValueFormat: _ColorRectangle_ColorRectangle_base__WEBPACK_IMPORTED_MODULE_13__["ColorRectangleBase"].defaultProps.ariaValueFormat,
            svAriaDescription: _ColorRectangle_ColorRectangle_base__WEBPACK_IMPORTED_MODULE_13__["ColorRectangleBase"].defaultProps.ariaDescription
        }
    };
    return ColorPickerBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

function _getColorFromProps(props) {
    var color = props.color;
    return typeof color === 'string' ? Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_7__["getColorFromString"])(color) : color;
}


/***/ }),

/***/ "./lib/components/ColorPicker/ColorPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return ColorPicker; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ColorPicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ColorPicker/ColorPicker.base.js");
/* harmony import */ var _ColorPicker_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ColorPicker/ColorPicker.styles.js");



var ColorPicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ColorPicker_base__WEBPACK_IMPORTED_MODULE_1__["ColorPickerBase"], _ColorPicker_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ColorPicker' });


/***/ }),

/***/ "./lib/components/ColorPicker/ColorPicker.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    return {
        root: [
            'ms-ColorPicker',
            theme.fonts.medium,
            {
                position: 'relative',
                maxWidth: 300
            },
            className
        ],
        panel: [
            'ms-ColorPicker-panel',
            {
                padding: '16px'
            }
        ],
        table: [
            'ms-ColorPicker-table',
            {
                tableLayout: 'fixed',
                width: '100%',
                selectors: {
                    'tbody td:last-of-type .ms-ColorPicker-input': {
                        paddingRight: 0
                    }
                }
            }
        ],
        tableHeader: [
            theme.fonts.small,
            {
                selectors: {
                    td: {
                        paddingBottom: 4
                    }
                }
            }
        ],
        tableHexCell: [
            {
                width: '25%'
            }
        ],
        colorSquare: [
            'ms-ColorPicker-colorSquare',
            {
                width: 48,
                height: 48,
                margin: '0 0 0 8px',
                border: '1px solid #c8c6c4'
            }
        ],
        flexContainer: [
            {
                display: 'flex'
            }
        ],
        flexSlider: [
            {
                flexGrow: '1'
            }
        ],
        flexPreviewBox: [
            {
                flexGrow: '0'
            }
        ],
        input: [
            'ms-ColorPicker-input',
            {
                width: '100%',
                border: 'none',
                boxSizing: 'border-box',
                height: 30,
                selectors: {
                    '&.ms-TextField': {
                        paddingRight: 4
                    },
                    '& .ms-TextField-field': {
                        minWidth: 'auto',
                        padding: 5,
                        textOverflow: 'clip'
                    }
                }
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorRectangleBase", function() { return ColorRectangleBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_getNewColor", function() { return _getNewColor; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _utilities_color_getFullColorString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/color/getFullColorString.js");
/* harmony import */ var _utilities_color_updateSV__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/color/updateSV.js");
/* harmony import */ var _utilities_color_clamp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/color/clamp.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory ColorPicker}
 */
var ColorRectangleBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ColorRectangleBase, _super);
    function ColorRectangleBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._isAdjustingSaturation = true;
        _this._descriptionId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('ColorRectangle-description');
        _this._onKeyDown = function (ev) {
            var color = _this.state.color;
            var s = color.s, v = color.v;
            var increment = ev.shiftKey ? 10 : 1;
            // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,
            // and getting all the math and styles flipped correctly is tricky
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up: {
                    _this._isAdjustingSaturation = false;
                    v += increment; // V = 100 (lightest) is at the top
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down: {
                    _this._isAdjustingSaturation = false;
                    v -= increment; // V = 0 (darkest) is at the bottom
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left: {
                    _this._isAdjustingSaturation = true;
                    s -= increment;
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right: {
                    _this._isAdjustingSaturation = true;
                    s += increment;
                    break;
                }
                default:
                    return;
            }
            _this._updateColor(ev, Object(_utilities_color_updateSV__WEBPACK_IMPORTED_MODULE_5__["updateSV"])(color, Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_6__["clamp"])(s, _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_SATURATION"]), Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_6__["clamp"])(v, _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"])));
        };
        _this._onMouseDown = function (ev) {
            _this._events.on(window, 'mousemove', _this._onMouseMove, true);
            _this._events.on(window, 'mouseup', _this._disableEvents, true);
            _this._onMouseMove(ev);
        };
        _this._onMouseMove = function (ev) {
            if (!_this._root.current) {
                return;
            }
            // If the primary button (1) isn't pressed, the user is no longer dragging, so turn off the
            // event handlers and exit. (this may only be relevant while debugging)
            // tslint:disable-next-line:no-bitwise
            if (!(ev.buttons & 1)) {
                _this._disableEvents();
                return;
            }
            var newColor = _getNewColor(ev, _this.state.color, _this._root.current);
            if (newColor) {
                _this._updateColor(ev, newColor);
            }
        };
        _this._disableEvents = function () {
            _this._events.off();
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["EventGroup"](_this);
        _this.state = { color: props.color };
        return _this;
    }
    Object.defineProperty(ColorRectangleBase.prototype, "color", {
        get: function () {
            return this.state.color;
        },
        enumerable: true,
        configurable: true
    });
    ColorRectangleBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        // if props changed (as opposed to a state update), set the value
        // TODO: switch to strict controlled pattern instead
        if (prevProps !== this.props && this.props.color) {
            this.setState({ color: this.props.color });
        }
    };
    ColorRectangleBase.prototype.componentWillUnmount = function () {
        this._events.dispose();
    };
    ColorRectangleBase.prototype.render = function () {
        var _a = this.props, minSize = _a.minSize, theme = _a.theme, className = _a.className, styles = _a.styles, ariaValueFormat = _a.ariaValueFormat, ariaLabel = _a.ariaLabel, ariaDescription = _a.ariaDescription;
        var color = this.state.color;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            minSize: minSize
        });
        var valueText = ariaValueFormat.replace('{0}', String(color.s)).replace('{1}', String(color.v));
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._root, tabIndex: 0, className: classNames.root, style: { backgroundColor: Object(_utilities_color_getFullColorString__WEBPACK_IMPORTED_MODULE_4__["getFullColorString"])(color) }, onMouseDown: this._onMouseDown, onKeyDown: this._onKeyDown, role: "slider", "aria-valuetext": valueText, "aria-valuenow": this._isAdjustingSaturation ? color.s : color.v, "aria-valuemin": 0, "aria-valuemax": _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"], "aria-label": ariaLabel, "aria-describedby": this._descriptionId, "data-is-focusable": true },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.description, id: this._descriptionId }, ariaDescription),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.light }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.dark }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.thumb, style: { left: color.s + '%', top: _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"] - color.v + '%', backgroundColor: color.str } })));
    };
    ColorRectangleBase.prototype._updateColor = function (ev, color) {
        var onChange = this.props.onChange;
        var oldColor = this.state.color;
        if (color.s === oldColor.s && color.v === oldColor.v) {
            return; // no change
        }
        if (onChange) {
            onChange(ev, color);
        }
        if (!ev.defaultPrevented) {
            this.setState({ color: color });
            ev.preventDefault();
        }
    };
    ColorRectangleBase.defaultProps = {
        minSize: 220,
        ariaLabel: 'Saturation and brightness',
        ariaValueFormat: 'Saturation {0} brightness {1}',
        ariaDescription: 'Use left and right arrow keys to set saturation. Use up and down arrow keys to set brightness.'
    };
    return ColorRectangleBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

/**
 * Exported for testing only.
 * @internal
 */
function _getNewColor(ev, prevColor, root) {
    var rectSize = root.getBoundingClientRect();
    var sPercentage = (ev.clientX - rectSize.left) / rectSize.width;
    var vPercentage = (ev.clientY - rectSize.top) / rectSize.height;
    return Object(_utilities_color_updateSV__WEBPACK_IMPORTED_MODULE_5__["updateSV"])(prevColor, Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_6__["clamp"])(Math.round(sPercentage * _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_SATURATION"]), _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_SATURATION"]), Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_6__["clamp"])(Math.round(_utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"] - vPercentage * _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"]), _utilities_color_consts__WEBPACK_IMPORTED_MODULE_3__["MAX_COLOR_VALUE"]));
}


/***/ }),

/***/ "./lib/components/ColorPicker/ColorRectangle/ColorRectangle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorRectangle", function() { return ColorRectangle; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ColorRectangle_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js");
/* harmony import */ var _ColorRectangle_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js");



var ColorRectangle = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ColorRectangle_base__WEBPACK_IMPORTED_MODULE_1__["ColorRectangleBase"], _ColorRectangle_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ColorRectangle' });


/***/ }),

/***/ "./lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../styling/lib/index.js");



var getStyles = function (props) {
    var _a;
    var className = props.className, theme = props.theme, minSize = props.minSize;
    var palette = theme.palette, effects = theme.effects;
    return {
        root: [
            'ms-ColorPicker-colorRect',
            {
                position: 'relative',
                marginBottom: 8,
                border: "1px solid " + palette.neutralLighter,
                borderRadius: effects.roundedCorner2,
                minWidth: minSize,
                minHeight: minSize,
                outline: 'none',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        MsHighContrastAdjust: 'none'
                    },
                    _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus"] = {
                        outline: "1px solid " + palette.neutralSecondary
                    },
                    _a)
            },
            className
        ],
        light: [
            'ms-ColorPicker-light',
            {
                position: 'absolute',
                left: 0,
                right: 0,
                top: 0,
                bottom: 0,
                // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,
                // and getting all the math and styles flipped correctly is tricky
                background: 'linear-gradient(to right, white 0%, transparent 100%) /*@noflip*/'
            }
        ],
        dark: [
            'ms-ColorPicker-dark',
            {
                position: 'absolute',
                left: 0,
                right: 0,
                top: 0,
                bottom: 0,
                background: 'linear-gradient(to bottom, transparent 0, #000 100%)'
            }
        ],
        thumb: [
            'ms-ColorPicker-thumb',
            {
                position: 'absolute',
                width: 20,
                height: 20,
                background: 'white',
                border: "1px solid " + palette.neutralSecondaryAlt,
                borderRadius: '50%',
                boxShadow: effects.elevation8,
                transform: 'translate(-50%, -50%)',
                selectors: {
                    ':before': {
                        position: 'absolute',
                        left: 0,
                        right: 0,
                        top: 0,
                        bottom: 0,
                        border: "2px solid " + palette.white,
                        borderRadius: '50%',
                        boxSizing: 'border-box',
                        content: '""'
                    }
                }
            }
        ],
        description: _uifabric_styling__WEBPACK_IMPORTED_MODULE_2__["hiddenContentStyle"]
    };
};


/***/ }),

/***/ "./lib/components/ColorPicker/ColorSlider/ColorSlider.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorSliderBase", function() { return ColorSliderBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_color_clamp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/clamp.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory ColorPicker}
 */
var ColorSliderBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ColorSliderBase, _super);
    function ColorSliderBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onKeyDown = function (ev) {
            var currentValue = _this.value;
            var _a = _this.props, minValue = _a.minValue, maxValue = _a.maxValue;
            var increment = ev.shiftKey ? 10 : 1;
            // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,
            // and getting all the math and styles flipped correctly is tricky
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left: {
                    currentValue -= increment;
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right: {
                    currentValue += increment;
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].home: {
                    currentValue = minValue;
                    break;
                }
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].end: {
                    currentValue = maxValue;
                    break;
                }
                default: {
                    return;
                }
            }
            _this._updateValue(ev, Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_3__["clamp"])(currentValue, maxValue, minValue));
        };
        _this._onMouseDown = function (ev) {
            var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(_this);
            _this._events.on(win, 'mousemove', _this._onMouseMove, true);
            _this._events.on(win, 'mouseup', _this._onMouseUp, true);
            _this._onMouseMove(ev);
        };
        _this._onMouseMove = function (ev) {
            if (!_this._root.current) {
                return;
            }
            var _a = _this.props, minValue = _a.minValue, maxValue = _a.maxValue;
            var rectSize = _this._root.current.getBoundingClientRect();
            var currentPercentage = (ev.clientX - rectSize.left) / rectSize.width;
            var newValue = Object(_utilities_color_clamp__WEBPACK_IMPORTED_MODULE_3__["clamp"])(Math.round(currentPercentage * maxValue), maxValue, minValue);
            _this._updateValue(ev, newValue);
        };
        _this._onMouseUp = function () {
            _this._events.off();
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["EventGroup"](_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnDeprecations"])('ColorSlider', props, {
            thumbColor: 'styles.sliderThumb',
            overlayStyle: 'overlayColor'
        });
        _this.state = {
            currentValue: props.value || 0
        };
        return _this;
    }
    Object.defineProperty(ColorSliderBase.prototype, "value", {
        get: function () {
            return this.state.currentValue;
        },
        enumerable: true,
        configurable: true
    });
    ColorSliderBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        // if props changed (as opposed to a state update), set the value
        // TODO: switch to strict controlled pattern instead
        if (prevProps !== this.props && this.props.value !== undefined) {
            this.setState({ currentValue: this.props.value });
        }
    };
    ColorSliderBase.prototype.componentWillUnmount = function () {
        this._events.dispose();
    };
    ColorSliderBase.prototype.render = function () {
        var _a = this.props, isAlpha = _a.isAlpha, minValue = _a.minValue, maxValue = _a.maxValue, overlayStyle = _a.overlayStyle, overlayColor = _a.overlayColor, theme = _a.theme, className = _a.className, styles = _a.styles;
        var _b = this.props.ariaLabel, ariaLabel = _b === void 0 ? isAlpha ? 'Alpha' : 'Hue' : _b;
        var currentValue = this.value;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            isAlpha: isAlpha
        });
        var currentPercentage = (100 * (currentValue - minValue)) / (maxValue - minValue);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._root, className: classNames.root, tabIndex: 0, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, role: "slider", "aria-valuenow": currentValue, "aria-valuetext": String(currentValue), "aria-valuemin": minValue, "aria-valuemax": maxValue, "aria-label": ariaLabel, "data-is-focusable": true },
            !!(overlayStyle || overlayColor) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.sliderOverlay, 
                // this isn't included in getStyles because it may change frequently
                style: overlayStyle || { background: "linear-gradient(to right, transparent 0, #" + overlayColor + " 100%)" } })),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.sliderThumb, style: { left: currentPercentage + '%' } })));
    };
    ColorSliderBase.prototype._updateValue = function (ev, newValue) {
        if (newValue === this.value) {
            return;
        }
        var onChange = this.props.onChange;
        if (onChange) {
            onChange(ev, newValue);
        }
        if (!ev.defaultPrevented) {
            this.setState({
                currentValue: newValue
            });
            ev.preventDefault();
        }
    };
    ColorSliderBase.defaultProps = {
        minValue: 0,
        maxValue: 100,
        value: 0
    };
    return ColorSliderBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/ColorPicker/ColorSlider/ColorSlider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorSlider", function() { return ColorSlider; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ColorSlider_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ColorPicker/ColorSlider/ColorSlider.base.js");
/* harmony import */ var _ColorSlider_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js");



var ColorSlider = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ColorSlider_base__WEBPACK_IMPORTED_MODULE_1__["ColorSliderBase"], _ColorSlider_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ColorSlider' });


/***/ }),

/***/ "./lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");

var hueStyle = {
    background: 
    // tslint:disable-next-line:max-line-length
    'linear-gradient(to left,red 0,#f09 10%,#cd00ff 20%,#3200ff 30%,#06f 40%,#00fffd 50%,#0f6 60%,#35ff00 70%,#cdff00 80%,#f90 90%,red 100%)'
};
var alphaStyle = {
    backgroundImage: 
    // tslint:disable-next-line:max-line-length
    'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJUlEQVQYV2N89erVfwY0ICYmxoguxjgUFKI7GsTH5m4M3w1ChQC1/Ca8i2n1WgAAAABJRU5ErkJggg==)'
};
var getStyles = function (props) {
    var _a;
    var theme = props.theme, className = props.className, isAlpha = props.isAlpha;
    var palette = theme.palette, effects = theme.effects;
    return {
        root: [
            'ms-ColorPicker-slider',
            {
                position: 'relative',
                height: 20,
                marginBottom: 8,
                border: "1px solid " + palette.neutralLight,
                borderRadius: effects.roundedCorner2,
                boxSizing: 'border-box',
                outline: 'none',
                selectors: (_a = {},
                    _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_0__["IsFocusVisibleClassName"] + " &:focus"] = {
                        outline: "1px solid " + palette.neutralSecondary
                    },
                    _a)
            },
            isAlpha ? alphaStyle : hueStyle,
            className
        ],
        sliderOverlay: [
            'ms-ColorPicker-sliderOverlay',
            {
                content: '',
                position: 'absolute',
                left: 0,
                right: 0,
                top: 0,
                bottom: 0
            }
        ],
        sliderThumb: [
            'ms-ColorPicker-thumb',
            'is-slider',
            {
                position: 'absolute',
                width: 20,
                height: 20,
                background: 'white',
                border: "1px solid " + palette.neutralSecondaryAlt,
                borderRadius: '50%',
                boxShadow: effects.elevation8,
                transform: 'translate(-50%, -50%)',
                top: '50%'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/ColorPicker/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ColorPicker/ColorPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _ColorPicker__WEBPACK_IMPORTED_MODULE_0__["ColorPicker"]; });

/* harmony import */ var _ColorPicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ColorPicker/ColorPicker.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerBase", function() { return _ColorPicker_base__WEBPACK_IMPORTED_MODULE_1__["ColorPickerBase"]; });





/***/ }),

/***/ "./lib/components/ComboBox/ComboBox.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getComboBoxOptionClassNames", function() { return getComboBoxOptionClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (styles, className, isOpen, disabled, required, focused, allowFreeForm, hasErrorMessage) {
    return {
        container: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-container', className, styles.container),
        label: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.label, disabled && styles.labelDisabled),
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox', hasErrorMessage ? styles.rootError : isOpen && 'is-open', required && 'is-required', styles.root, !allowFreeForm && styles.rootDisallowFreeForm, hasErrorMessage ? styles.rootError : !disabled && focused && styles.rootFocused, !disabled && {
            selectors: {
                ':hover': hasErrorMessage ? styles.rootError : !isOpen && !focused && styles.rootHovered,
                ':active': hasErrorMessage ? styles.rootError : styles.rootPressed,
                ':focus': hasErrorMessage ? styles.rootError : styles.rootFocused
            }
        }, disabled && ['is-disabled', styles.rootDisabled]),
        input: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-Input', styles.input, disabled && styles.inputDisabled),
        errorMessage: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.errorMessage),
        callout: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-callout', styles.callout),
        optionsContainerWrapper: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-optionsContainerWrapper', styles.optionsContainerWrapper),
        optionsContainer: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-optionsContainer', styles.optionsContainer),
        header: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-header', styles.header),
        divider: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-divider', styles.divider)
    };
});
var getComboBoxOptionClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (styles) {
    return {
        optionText: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-optionText', styles.optionText),
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-ComboBox-option', styles.root, {
            selectors: {
                ':hover': styles.rootHovered,
                ':focus': styles.rootFocused,
                ':active': styles.rootPressed
            }
        }),
        optionTextWrapper: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.optionTextWrapper)
    };
});


/***/ }),

/***/ "./lib/components/ComboBox/ComboBox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComboBox", function() { return ComboBox; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Autofill_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Autofill/index.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Checkbox.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _ComboBox_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/ComboBox/ComboBox.styles.js");
/* harmony import */ var _ComboBox_classNames__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/ComboBox/ComboBox.classNames.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/KeytipData.js");
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/selectableOption/index.js");













var SearchDirection;
(function (SearchDirection) {
    SearchDirection[SearchDirection["backward"] = -1] = "backward";
    SearchDirection[SearchDirection["none"] = 0] = "none";
    SearchDirection[SearchDirection["forward"] = 1] = "forward";
})(SearchDirection || (SearchDirection = {}));
var HoverStatus;
(function (HoverStatus) {
    /** Used when the user was hovering and has since moused out of the menu items */
    HoverStatus[HoverStatus["clearAll"] = -2] = "clearAll";
    /** Default "normal" state, when no hover has happened or a hover is in progress */
    HoverStatus[HoverStatus["default"] = -1] = "default";
})(HoverStatus || (HoverStatus = {}));
var ScrollIdleDelay = 250 /* ms */;
var TouchIdleDelay = 500; /* ms */
/**
 * This is used to clear any pending autocomplete text (used when autocomplete is true and
 * allowFreeform is false)
 */
var ReadOnlyPendingAutoCompleteTimeout = 1000 /* ms */;
/**
 * Internal class that is used to wrap all ComboBox options.
 * This is used to customize when we want to rerender components,
 * so we don't rerender every option every time render is executed.
 */
var ComboBoxOptionWrapper = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ComboBoxOptionWrapper, _super);
    function ComboBoxOptionWrapper() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ComboBoxOptionWrapper.prototype.render = function () {
        return this.props.render();
    };
    ComboBoxOptionWrapper.prototype.shouldComponentUpdate = function (newProps) {
        // The render function will always be different, so we ignore that prop
        return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { render: undefined }), tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, newProps, { render: undefined }));
    };
    return ComboBoxOptionWrapper;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
var ComboBox = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ComboBox, _super);
    function ComboBox(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /** The input aspect of the comboBox */
        _this._autofill = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /** The wrapping div of the input and button */
        _this._comboBoxWrapper = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /** The callout element */
        _this._comboBoxMenu = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /** The menu item element that is currently selected */
        _this._selectedElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /**
         * {@inheritdoc}
         */
        _this.focus = function (shouldOpenOnFocus, useFocusAsync) {
            if (_this._autofill.current) {
                if (useFocusAsync) {
                    Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["focusAsync"])(_this._autofill.current);
                }
                else {
                    _this._autofill.current.focus();
                }
                if (shouldOpenOnFocus) {
                    _this.setState({
                        isOpen: true
                    });
                }
            }
        };
        /**
         * Close menu callout if it is open
         */
        _this.dismissMenu = function () {
            var isOpen = _this.state.isOpen;
            isOpen && _this.setState({ isOpen: false });
        };
        /**
         * componentWillReceiveProps handler for the auto fill component
         * Checks/updates the iput value to set, if needed
         * @param defaultVisibleValue - the defaultVisibleValue that got passed
         *  in to the auto fill's componentWillReceiveProps
         * @returns - the updated value to set, if needed
         */
        _this._onUpdateValueInAutofillWillReceiveProps = function () {
            var comboBox = _this._autofill.current;
            if (!comboBox) {
                return null;
            }
            if (comboBox.value === null || comboBox.value === undefined) {
                return null;
            }
            var visibleValue = _this._normalizeToString(_this._currentVisibleValue);
            if (comboBox.value !== visibleValue) {
                // If visibleValue is empty, make it a zero width space.
                // If we did not do that, the empty string would not get used
                // potentially resulting in an unexpected value being used
                return visibleValue || '​';
            }
            return comboBox.value;
        };
        /**
         * componentDidUpdate handler for the auto fill component
         *
         * @param defaultVisibleValue - the current defaultVisibleValue in the auto fill's componentDidUpdate
         * @param suggestedDisplayValue - the current suggestedDisplayValue in the auto fill's componentDidUpdate
         * @returns - should the full value of the input be selected?
         * True if the defaultVisibleValue equals the suggestedDisplayValue, false otherwise
         */
        _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate = function () {
            return _this._currentVisibleValue === _this.state.suggestedDisplayValue;
        };
        /**
         * Get the correct value to pass to the input
         * to show to the user based off of the current props and state
         * @returns the value to pass to the input
         */
        _this._getVisibleValue = function () {
            var _a = _this.props, text = _a.text, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;
            var _b = _this.state, selectedIndices = _b.selectedIndices, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentOptions = _b.currentOptions, currentPendingValue = _b.currentPendingValue, suggestedDisplayValue = _b.suggestedDisplayValue, isOpen = _b.isOpen, focused = _b.focused;
            var currentPendingIndexValid = _this._indexWithinBounds(currentOptions, currentPendingValueValidIndex);
            // If the user passed is a value prop, use that
            // unless we are open and have a valid current pending index
            if (!(isOpen && currentPendingIndexValid) && (text && (currentPendingValue === null || currentPendingValue === undefined))) {
                return text;
            }
            // Values to display in the BaseAutoFill area
            var displayValues = [];
            if (_this.props.multiSelect) {
                // Multi-select
                if (focused) {
                    var index = -1;
                    if (autoComplete === 'on' && currentPendingIndexValid) {
                        index = currentPendingValueValidIndex;
                    }
                    displayValues.push(currentPendingValue !== null && currentPendingValue !== undefined
                        ? currentPendingValue
                        : _this._indexWithinBounds(currentOptions, index)
                            ? currentOptions[index].text
                            : '');
                }
                else {
                    for (var idx = 0; selectedIndices && idx < selectedIndices.length; idx++) {
                        var index = selectedIndices[idx];
                        displayValues.push(_this._indexWithinBounds(currentOptions, index) ? currentOptions[index].text : _this._normalizeToString(suggestedDisplayValue));
                    }
                }
            }
            else {
                // Single-select
                var index = _this._getFirstSelectedIndex();
                if (allowFreeform) {
                    // If we are allowing freeform and autocomplete is also true
                    // and we've got a pending value that matches an option, remember
                    // the matched option's index
                    if (autoComplete === 'on' && currentPendingIndexValid) {
                        index = currentPendingValueValidIndex;
                    }
                    // Since we are allowing freeform, if there is currently a pending value, use that
                    // otherwise use the index determined above (falling back to '' if we did not get a valid index)
                    displayValues.push(currentPendingValue !== null && currentPendingValue !== undefined
                        ? currentPendingValue
                        : _this._indexWithinBounds(currentOptions, index)
                            ? currentOptions[index].text
                            : '');
                }
                else {
                    // If we are not allowing freeform and have a
                    // valid index that matches the pending value,
                    // we know we will need some version of the pending value
                    if (currentPendingIndexValid && autoComplete === 'on') {
                        // If autoComplete is on, return the
                        // raw pending value, otherwise remember
                        // the matched option's index
                        index = currentPendingValueValidIndex;
                        displayValues.push(_this._normalizeToString(currentPendingValue));
                    }
                    else {
                        displayValues.push(_this._indexWithinBounds(currentOptions, index) ? currentOptions[index].text : _this._normalizeToString(suggestedDisplayValue));
                    }
                }
            }
            // If we have a valid index then return the text value of that option,
            // otherwise return the suggestedDisplayValue
            var displayString = '';
            for (var idx = 0; idx < displayValues.length; idx++) {
                if (idx > 0) {
                    displayString += ', ';
                }
                displayString += displayValues[idx];
            }
            return displayString;
        };
        /**
         * Handler for typing changes on the input
         * @param updatedValue - the newly changed value
         */
        _this._onInputChange = function (updatedValue) {
            if (_this.props.disabled) {
                _this._handleInputWhenDisabled(null /* event */);
                return;
            }
            _this.props.allowFreeform ? _this._processInputChangeWithFreeform(updatedValue) : _this._processInputChangeWithoutFreeform(updatedValue);
        };
        /**
         * Focus (and select) the content of the input
         * and set the focused state
         */
        _this._select = function () {
            if (_this._autofill.current && _this._autofill.current.inputElement) {
                _this._autofill.current.inputElement.select();
            }
            if (!_this.state.focused) {
                var state = { focused: true };
                if (_this.props.openOnKeyboardFocus && !_this.state.isOpen && !_this.props.disabled) {
                    state.isOpen = true;
                }
                _this.setState(state);
            }
        };
        /**
         * Callback issued when the options should be resolved, if they have been updated or
         * if they need to be passed in the first time. This only does work if an onResolveOptions
         * callback was passed in
         */
        _this._onResolveOptions = function () {
            if (_this.props.onResolveOptions) {
                // get the options
                var newOptions = _this.props.onResolveOptions(_this.state.currentOptions.slice());
                // Check to see if the returned value is an array, if it is update the state
                // If the returned value is not an array then check to see if it's a promise or PromiseLike. If it is then resolve it asynchronously.
                if (Array.isArray(newOptions)) {
                    _this.setState({
                        currentOptions: newOptions
                    });
                }
                else if (newOptions && newOptions.then) {
                    // Ensure that the promise will only use the callback if it was the most recent one
                    // and update the state when the promise returns
                    var promise_1 = (_this._currentPromise = newOptions);
                    promise_1.then(function (newOptionsFromPromise) {
                        if (promise_1 === _this._currentPromise) {
                            _this.setState({
                                currentOptions: newOptionsFromPromise
                            });
                        }
                    });
                }
            }
        };
        /**
         * OnBlur handler. Set the focused state to false
         * and submit any pending value
         */
        _this._onBlur = function (event) {
            // Do nothing if the blur is coming from something
            // inside the comboBox root or the comboBox menu since
            // it we are not really bluring from the whole comboBox
            var relatedTarget = event.relatedTarget;
            if (event.relatedTarget === null) {
                // In IE11, due to lack of support, event.relatedTarget is always
                // null making every onBlur call to be "outside" of the ComboBox
                // even when it's not. Using document.activeElement is another way
                // for us to be able to get what the relatedTarget without relying
                // on the event
                relatedTarget = document.activeElement;
            }
            if (relatedTarget &&
                // when event coming from withing the comboBox title
                ((_this._root.current && _this._root.current.contains(relatedTarget)) ||
                    // when event coming from within the comboBox list menu
                    (_this._comboBoxMenu.current &&
                        (_this._comboBoxMenu.current.contains(relatedTarget) ||
                            // when event coming from the callout containing the comboBox list menu (ex: when scrollBar of the Callout clicked)
                            // checks if the relatedTarget is a parent of _comboBoxMenu
                            Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["findElementRecursive"])(_this._comboBoxMenu.current, function (element) { return element === relatedTarget; }))))) {
                event.preventDefault();
                event.stopPropagation();
                return;
            }
            if (_this.state.focused) {
                _this.setState({ focused: false });
                if (!_this.props.multiSelect || _this.props.allowFreeform) {
                    _this._submitPendingValue(event);
                }
            }
        };
        // Render Callout container and pass in list
        _this._onRenderContainer = function (props) {
            var onRenderList = props.onRenderList, calloutProps = props.calloutProps, dropdownWidth = props.dropdownWidth, dropdownMaxWidth = props.dropdownMaxWidth, _a = props.onRenderLowerContent, onRenderLowerContent = _a === void 0 ? _this._onRenderLowerContent : _a, useComboBoxAsMenuWidth = props.useComboBoxAsMenuWidth, persistMenu = props.persistMenu, _b = props.shouldRestoreFocus, shouldRestoreFocus = _b === void 0 ? true : _b;
            var isOpen = _this.state.isOpen;
            var comboBoxMenuWidth = useComboBoxAsMenuWidth && _this._comboBoxWrapper.current ? _this._comboBoxWrapper.current.clientWidth + 2 : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_4__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_7__["DirectionalHint"].bottomLeftEdge, directionalHintFixed: false }, calloutProps, { onLayerMounted: _this._onLayerMounted, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(_this._classNames.callout, calloutProps ? calloutProps.className : undefined), target: _this._comboBoxWrapper.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, setInitialFocus: false, calloutWidth: useComboBoxAsMenuWidth && _this._comboBoxWrapper.current ? comboBoxMenuWidth && comboBoxMenuWidth : dropdownWidth, calloutMaxWidth: dropdownMaxWidth ? dropdownMaxWidth : comboBoxMenuWidth, hidden: persistMenu ? !isOpen : undefined, shouldRestoreFocus: shouldRestoreFocus }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.optionsContainerWrapper, ref: _this._comboBoxMenu }, onRenderList(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props), _this._onRenderList)),
                onRenderLowerContent(_this.props, _this._onRenderLowerContent)));
        };
        _this._onLayerMounted = function () {
            _this._onCalloutLayerMounted();
            if (_this.props.calloutProps && _this.props.calloutProps.onLayerMounted) {
                _this.props.calloutProps.onLayerMounted();
            }
        };
        // Render List of items
        _this._onRenderList = function (props) {
            var onRenderItem = props.onRenderItem, options = props.options;
            var id = _this._id;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: id + '-list', className: _this._classNames.optionsContainer, "aria-labelledby": id + '-label', role: "listbox" }, options.map(function (item) { return onRenderItem(item, _this._onRenderItem); })));
        };
        // Render items
        _this._onRenderItem = function (item) {
            switch (item.itemType) {
                case _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider:
                    return _this._renderSeparator(item);
                case _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header:
                    return _this._renderHeader(item);
                default:
                    return _this._renderOption(item);
            }
        };
        // Default _onRenderLowerContent function returns nothing
        _this._onRenderLowerContent = function () {
            return null;
        };
        _this._renderOption = function (item) {
            var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOptionContent : _a;
            var id = _this._id;
            var isSelected = _this._isOptionSelected(item.index);
            var optionStyles = _this._getCurrentOptionStyles(item);
            var optionClassNames = Object(_ComboBox_classNames__WEBPACK_IMPORTED_MODULE_9__["getComboBoxOptionClassNames"])(_this._getCurrentOptionStyles(item));
            var checkboxStyles = function () {
                return optionStyles;
            };
            var title = _this._getPreviewText(item);
            var getOptionComponent = function () {
                return !_this.props.multiSelect ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_6__["CommandButton"], { id: id + '-list' + item.index, key: item.key, "data-index": item.index, styles: _this._getCurrentOptionStyles(item), checked: isSelected, className: 'ms-ComboBox-option', onClick: _this._onItemClick(item), onMouseEnter: _this._onOptionMouseEnter.bind(_this, item.index), onMouseMove: _this._onOptionMouseMove.bind(_this, item.index), onMouseLeave: _this._onOptionMouseLeave, role: "option", "aria-selected": isSelected ? 'true' : 'false', ariaLabel: _this._getPreviewText(item), disabled: item.disabled, title: title },
                    ' ',
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: optionClassNames.optionTextWrapper, ref: isSelected ? _this._selectedElement : undefined }, onRenderOption(item, _this._onRenderOptionContent)))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Checkbox__WEBPACK_IMPORTED_MODULE_5__["Checkbox"], { id: id + '-list' + item.index, ariaLabel: _this._getPreviewText(item), key: item.key, "data-index": item.index, styles: checkboxStyles, className: 'ms-ComboBox-option', "data-is-focusable": true, onChange: _this._onItemClick(item), label: item.text, role: "option", "aria-selected": isSelected ? 'true' : 'false', checked: isSelected, title: title, disabled: item.disabled }, onRenderOption(item, _this._onRenderOptionContent)));
            };
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ComboBoxOptionWrapper, { key: item.key, index: item.index, disabled: item.disabled, isSelected: isSelected, text: item.text, render: getOptionComponent, data: item.data }));
        };
        /**
         * Scroll handler for the callout to make sure the mouse events
         * for updating focus are not interacting during scroll
         */
        _this._onScroll = function () {
            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {
                _this._async.clearTimeout(_this._scrollIdleTimeoutId);
                _this._scrollIdleTimeoutId = undefined;
            }
            else {
                _this._isScrollIdle = false;
            }
            _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {
                _this._isScrollIdle = true;
            }, ScrollIdleDelay);
        };
        _this._onRenderOptionContent = function (item) {
            var optionClassNames = Object(_ComboBox_classNames__WEBPACK_IMPORTED_MODULE_9__["getComboBoxOptionClassNames"])(_this._getCurrentOptionStyles(item));
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: optionClassNames.optionText }, item.text);
        };
        /**
         * Handles dismissing (cancelling) the menu
         */
        _this._onDismiss = function () {
            var onMenuDismiss = _this.props.onMenuDismiss;
            if (onMenuDismiss) {
                onMenuDismiss();
            }
            // In persistMode we need to simulate callout layer mount
            // since that only happens once. We do it on dismiss since
            // it works either way.
            if (_this.props.persistMenu) {
                _this._onCalloutLayerMounted();
            }
            // close the menu
            _this._setOpenStateAndFocusOnClose(false /* isOpen */, false /* focusInputAfterClose */);
            // reset the selected index
            // to the last value state
            _this._resetSelectedIndex();
        };
        _this._onAfterClearPendingInfo = function () {
            _this._processingClearPendingInfo = false;
        };
        /**
         * Handle keydown on the input
         * @param ev - The keyboard event that was fired
         */
        _this._onInputKeyDown = function (ev) {
            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;
            var _b = _this.state, isOpen = _b.isOpen, currentOptions = _b.currentOptions, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;
            // Take note if we are processing an alt (option) or meta (command) keydown.
            // See comment in _onInputKeyUp for reasoning.
            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);
            if (disabled) {
                _this._handleInputWhenDisabled(ev);
                return;
            }
            var index = _this._getPendingSelectedIndex(false /* includeCurrentPendingValue */);
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].enter:
                    if (_this._autofill.current && _this._autofill.current.inputElement) {
                        _this._autofill.current.inputElement.select();
                    }
                    _this._submitPendingValue(ev);
                    if (_this.props.multiSelect && isOpen) {
                        _this.setState({
                            currentPendingValueValidIndex: index
                        });
                    }
                    else {
                        // On enter submit the pending value
                        if (isOpen ||
                            ((!allowFreeform ||
                                _this.state.currentPendingValue === undefined ||
                                _this.state.currentPendingValue === null ||
                                _this.state.currentPendingValue.length <= 0) &&
                                _this.state.currentPendingValueValidIndex < 0)) {
                            // if we are open or
                            // if we are not allowing freeform or
                            // our we have no pending value
                            // and no valid pending index
                            // flip the open state
                            _this.setState({
                                isOpen: !isOpen
                            });
                        }
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].tab:
                    // On enter submit the pending value
                    if (!_this.props.multiSelect) {
                        _this._submitPendingValue(ev);
                    }
                    // If we are not allowing freeform
                    // or the comboBox is open, flip the open state
                    if (isOpen) {
                        _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);
                    }
                    // Allow TAB to propigate
                    return;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].escape:
                    // reset the selected index
                    _this._resetSelectedIndex();
                    // Close the menu if opened
                    if (isOpen) {
                        _this.setState({
                            isOpen: false
                        });
                    }
                    else {
                        return;
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].up:
                    // if we are in clearAll state (e.g. the user as hovering
                    // and has since mousedOut of the menu items),
                    // go to the last index
                    if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {
                        index = _this.state.currentOptions.length;
                    }
                    if (ev.altKey || ev.metaKey) {
                        // Close the menu if it is open and break so
                        // that the event get stopPropagation and prevent default.
                        // Otherwise, we need to let the event continue to propagate
                        if (isOpen) {
                            _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);
                            break;
                        }
                        return;
                    }
                    // Go to the previous option
                    _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.backward);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].down:
                    // Expand the comboBox on ALT + DownArrow
                    if (ev.altKey || ev.metaKey) {
                        _this._setOpenStateAndFocusOnClose(true /* isOpen */, true /* focusInputAfterClose */);
                    }
                    else {
                        // if we are in clearAll state (e.g. the user as hovering
                        // and has since mousedOut of the menu items),
                        // go to the first index
                        if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {
                            index = -1;
                        }
                        // Got to the next option
                        _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.forward);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].home:
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].end:
                    if (allowFreeform) {
                        return;
                    }
                    // Set the initial values to respond to HOME
                    // which goes to the first selectable option
                    index = -1;
                    var directionToSearch = SearchDirection.forward;
                    // If end, update the values to respond to END
                    // which goes to the last selectable option
                    if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].end) {
                        index = currentOptions.length;
                        directionToSearch = SearchDirection.backward;
                    }
                    _this._setPendingInfoFromIndexAndDirection(index, directionToSearch);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].space:
                    // event handled in _onComboBoxKeyUp
                    if (!allowFreeform && autoComplete === 'off') {
                        break;
                    }
                default:
                    // are we processing a function key? if so bail out
                    if (ev.which >= 112 /* F1 */ && ev.which <= 123 /* F12 */) {
                        return;
                    }
                    // If we get here and we got either and ALT key
                    // or meta key, let the event propagate
                    if (ev.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].alt || ev.key === 'Meta' /* && isOpen */) {
                        return;
                    }
                    // If we are not allowing freeform and
                    // allowing autoComplete, handle the input here
                    // since we have marked the input as readonly
                    if (!allowFreeform && autoComplete === 'on') {
                        _this._onInputChange(String.fromCharCode(ev.which));
                        break;
                    }
                    // allow the key to propagate by default
                    return;
            }
            ev.stopPropagation();
            ev.preventDefault();
        };
        /**
         * Handle keyup on the input
         * @param ev - the keyboard event that was fired
         */
        _this._onInputKeyUp = function (ev) {
            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;
            var isOpen = _this.state.isOpen;
            // We close the menu on key up only if ALL of the following are true:
            // - Most recent key down was alt or meta (command)
            // - The alt/meta key down was NOT followed by some other key (such as down/up arrow to
            //   expand/collapse the menu)
            // - We're not on a Mac (or iOS)
            // This is because on Windows, pressing alt moves focus to the application menu bar or similar,
            // closing any open context menus. There is not a similar behavior on Macs.
            var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && _this._isAltOrMeta(ev);
            _this._lastKeyDownWasAltOrMeta = false;
            var shouldHandleKey = keyPressIsAltOrMetaAlone && !(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isMac"])() || Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isIOS"])());
            if (disabled) {
                _this._handleInputWhenDisabled(ev);
                return;
            }
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].space:
                    // If we are not allowing freeform and are not autoComplete
                    // make space expand/collapse the comboBox
                    // and allow the event to propagate
                    if (!allowFreeform && autoComplete === 'off') {
                        _this._setOpenStateAndFocusOnClose(!isOpen, !!isOpen);
                    }
                    return;
                default:
                    if (shouldHandleKey && isOpen) {
                        _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);
                    }
                    return;
            }
        };
        _this._onOptionMouseLeave = function () {
            if (_this._shouldIgnoreMouseEvent()) {
                return;
            }
            // Ignore the event in persistMenu mode if the callout has
            // closed. This is to avoid clearing the visuals on item click.
            if (_this.props.persistMenu && !_this.state.isOpen) {
                return;
            }
            _this.setState({
                currentPendingValueValidIndexOnHover: HoverStatus.clearAll
            });
        };
        /**
         * Click handler for the button of the comboBox
         * and the input when not allowing freeform. This
         * toggles the expand/collapse state of the comboBox (if enbled)
         */
        _this._onComboBoxClick = function () {
            var disabled = _this.props.disabled;
            var isOpen = _this.state.isOpen;
            if (!disabled) {
                _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);
                _this.setState({ focused: true });
            }
        };
        /**
         * Click handler for the autofill.
         */
        _this._onAutofillClick = function () {
            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform;
            if (allowFreeform && !disabled) {
                _this.focus(_this.state.isOpen || _this._processingTouch);
            }
            else {
                _this._onComboBoxClick();
            }
        };
        _this._onTouchStart = function () {
            if (_this._comboBoxWrapper.current && !('onpointerdown' in _this._comboBoxWrapper)) {
                _this._handleTouchAndPointerEvent();
            }
        };
        _this._onPointerDown = function (ev) {
            if (ev.pointerType === 'touch') {
                _this._handleTouchAndPointerEvent();
                ev.preventDefault();
                ev.stopImmediatePropagation();
            }
        };
        _this._warnMutuallyExclusive({
            defaultSelectedKey: 'selectedKey',
            text: 'defaultSelectedKey',
            selectedKey: 'value',
            dropdownWidth: 'useComboBoxAsMenuWidth'
        });
        _this._id = props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('ComboBox');
        var selectedKeys = _this._buildDefaultSelectedKeys(props.defaultSelectedKey, props.selectedKey);
        _this._isScrollIdle = true;
        _this._processingTouch = false;
        _this._gotMouseMove = false;
        _this._processingClearPendingInfo = false;
        var initialSelectedIndices = _this._getSelectedIndices(props.options, selectedKeys);
        _this.state = {
            isOpen: false,
            selectedIndices: initialSelectedIndices,
            focused: false,
            suggestedDisplayValue: undefined,
            currentOptions: _this.props.options,
            currentPendingValueValidIndex: -1,
            currentPendingValue: undefined,
            currentPendingValueValidIndexOnHover: HoverStatus.default
        };
        return _this;
    }
    Object.defineProperty(ComboBox.prototype, "selectedOptions", {
        /**
         * All selected options
         */
        get: function () {
            var _a = this.state, currentOptions = _a.currentOptions, selectedIndices = _a.selectedIndices;
            return Object(_utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["getAllSelectedOptions"])(currentOptions, selectedIndices);
        },
        enumerable: true,
        configurable: true
    });
    ComboBox.prototype.componentDidMount = function () {
        if (this._comboBoxWrapper.current) {
            // hook up resolving the options if needed on focus
            this._events.on(this._comboBoxWrapper.current, 'focus', this._onResolveOptions, true);
            if ('onpointerdown' in this._comboBoxWrapper.current) {
                // For ComboBoxes, touching anywhere in the combo box should drop the dropdown, including the input element.
                // This gives more hit target space for touch environments. We're setting the onpointerdown here, because React
                // does not support Pointer events yet.
                this._events.on(this._comboBoxWrapper.current, 'pointerdown', this._onPointerDown, true);
            }
        }
    };
    // tslint:disable-next-line function-name
    ComboBox.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        // Update the selectedIndex and currentOptions state if
        // the selectedKey, value, or options have changed
        if (newProps.selectedKey !== this.props.selectedKey || newProps.text !== this.props.text || newProps.options !== this.props.options) {
            var selectedKeys = this._buildSelectedKeys(newProps.selectedKey);
            var indices = this._getSelectedIndices(newProps.options, selectedKeys);
            this.setState({
                selectedIndices: indices,
                currentOptions: newProps.options
            });
            if (newProps.selectedKey === null) {
                this.setState({
                    suggestedDisplayValue: undefined
                });
            }
        }
    };
    ComboBox.prototype.componentDidUpdate = function (prevProps, prevState) {
        var _this = this;
        var _a = this.props, allowFreeform = _a.allowFreeform, text = _a.text, onMenuOpen = _a.onMenuOpen, onMenuDismissed = _a.onMenuDismissed;
        var _b = this.state, isOpen = _b.isOpen, focused = _b.focused, selectedIndices = _b.selectedIndices, currentPendingValueValidIndex = _b.currentPendingValueValidIndex;
        // If we are newly open or are open and the pending valid index changed,
        // make sure the currently selected/pending option is scrolled into view
        if (isOpen && (!prevState.isOpen || prevState.currentPendingValueValidIndex !== currentPendingValueValidIndex)) {
            // Need this timeout so that the selectedElement ref is correctly updated
            this._async.setTimeout(function () { return _this._scrollIntoView(); }, 0);
        }
        // if an action is taken that put focus in the ComboBox
        // and If we are open or we are just closed, shouldFocusAfterClose is set,
        // but we are not the activeElement set focus on the input
        if (focused &&
            (isOpen ||
                (prevState.isOpen &&
                    !isOpen &&
                    this._focusInputAfterClose &&
                    this._autofill.current &&
                    document.activeElement !== this._autofill.current.inputElement))) {
            this.focus(undefined /*shouldOpenOnFocus*/, true /*useFocusAsync*/);
        }
        // If we should focusAfterClose AND
        //   just opened/closed the menu OR
        //   are focused AND
        //     updated the selectedIndex with the menu closed OR
        //     are not allowing freeform OR
        //     the value changed
        // we need to set selection
        if (this._focusInputAfterClose &&
            ((prevState.isOpen && !isOpen) ||
                (focused &&
                    ((!isOpen &&
                        !this.props.multiSelect &&
                        prevState.selectedIndices &&
                        selectedIndices &&
                        prevState.selectedIndices[0] !== selectedIndices[0]) ||
                        !allowFreeform ||
                        text !== prevProps.text)))) {
            this._select();
        }
        this._notifyPendingValueChanged(prevState);
        if (isOpen && !prevState.isOpen && onMenuOpen) {
            onMenuOpen();
        }
        if (!isOpen && prevState.isOpen && onMenuDismissed) {
            onMenuDismissed();
        }
    };
    ComboBox.prototype.componentWillUnmount = function () {
        _super.prototype.componentWillUnmount.call(this);
        // remove the eventHanlder that was added in componentDidMount
        this._events.off(this._comboBoxWrapper.current);
    };
    // Primary Render
    ComboBox.prototype.render = function () {
        var _this = this;
        var id = this._id;
        var errorMessageId = id + '-error';
        var _a = this.props, className = _a.className, label = _a.label, disabled = _a.disabled, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, required = _a.required, errorMessage = _a.errorMessage, _b = _a.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = _a.onRenderList, onRenderList = _c === void 0 ? this._onRenderList : _c, _d = _a.onRenderItem, onRenderItem = _d === void 0 ? this._onRenderItem : _d, _e = _a.onRenderOption, onRenderOption = _e === void 0 ? this._onRenderOptionContent : _e, allowFreeform = _a.allowFreeform, buttonIconProps = _a.buttonIconProps, _f = _a.isButtonAriaHidden, isButtonAriaHidden = _f === void 0 ? true : _f, customStyles = _a.styles, theme = _a.theme, title = _a.title, keytipProps = _a.keytipProps, placeholder = _a.placeholder, tabIndex = _a.tabIndex, autofill = _a.autofill, persistMenu = _a.persistMenu, iconButtonProps = _a.iconButtonProps;
        var _g = this.state, isOpen = _g.isOpen, focused = _g.focused, suggestedDisplayValue = _g.suggestedDisplayValue;
        this._currentVisibleValue = this._getVisibleValue();
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"], ['onChange', 'value']);
        var hasErrorMessage = errorMessage && errorMessage.length > 0 ? true : false;
        this._classNames = this.props.getClassNames
            ? this.props.getClassNames(theme, !!isOpen, !!disabled, !!required, !!focused, !!allowFreeform, !!hasErrorMessage, className)
            : Object(_ComboBox_classNames__WEBPACK_IMPORTED_MODULE_9__["getClassNames"])(Object(_ComboBox_styles__WEBPACK_IMPORTED_MODULE_8__["getStyles"])(theme, customStyles), className, !!isOpen, !!disabled, !!required, !!focused, !!allowFreeform, !!hasErrorMessage);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { ref: this._root, className: this._classNames.container }),
            label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_11__["Label"], { id: id + '-label', disabled: disabled, required: required, htmlFor: id + '-input', className: this._classNames.label }, label)),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_10__["KeytipData"], { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { "data-ktp-target": keytipAttributes['data-ktp-target'], ref: _this._comboBoxWrapper, id: id + 'wrapper', className: _this._classNames.root },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Autofill_index__WEBPACK_IMPORTED_MODULE_2__["Autofill"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "data-ktp-execute-target": keytipAttributes['data-ktp-execute-target'], "data-is-interactable": !disabled, componentRef: _this._autofill, id: id + '-input', className: _this._classNames.input, type: "text", onFocus: _this._select, onBlur: _this._onBlur, onKeyDown: _this._onInputKeyDown, onKeyUp: _this._onInputKeyUp, onClick: _this._onAutofillClick, onTouchStart: _this._onTouchStart, onInputValueChange: _this._onInputChange, "aria-expanded": isOpen, "aria-autocomplete": _this._getAriaAutoCompleteValue(), role: "combobox", readOnly: disabled || !allowFreeform, "aria-labelledby": label && id + '-label', "aria-label": ariaLabel && !label ? ariaLabel : undefined, "aria-describedby": errorMessage !== undefined
                        ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["mergeAriaAttributeValues"])(ariaDescribedBy, keytipAttributes['aria-describedby'], errorMessageId)
                        : Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["mergeAriaAttributeValues"])(ariaDescribedBy, keytipAttributes['aria-describedby']), "aria-activedescendant": _this._getAriaActiveDescentValue(), "aria-required": required, "aria-disabled": disabled, "aria-owns": isOpen ? id + '-list' : undefined, spellCheck: false, defaultVisibleValue: _this._currentVisibleValue, suggestedDisplayValue: suggestedDisplayValue, updateValueInWillReceiveProps: _this._onUpdateValueInAutofillWillReceiveProps, shouldSelectFullInputValueInComponentDidUpdate: _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate, title: title, preventValueSelection: !focused, placeholder: placeholder, tabIndex: tabIndex }, autofill)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_6__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: 'ms-ComboBox-CaretDown-button', styles: _this._getCaretButtonStyles(), role: "presentation", "aria-hidden": isButtonAriaHidden, "data-is-focusable": false, tabIndex: -1, onClick: _this._onComboBoxClick, onBlur: _this._onBlur, iconProps: buttonIconProps, disabled: disabled, checked: isOpen }, iconButtonProps)))); }),
            (persistMenu || isOpen) &&
                onRenderContainer(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { onRenderList: onRenderList,
                    onRenderItem: onRenderItem,
                    onRenderOption: onRenderOption, options: this.state.currentOptions.map(function (item, index) { return (tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index })); }), onDismiss: this._onDismiss }), this._onRenderContainer),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "region", "aria-live": "polite", "aria-atomic": "true", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage !== undefined ? errorMessage : '')));
    };
    /**
     * Is the index within the bounds of the array?
     * @param options - options to check if the index is valid for
     * @param index - the index to check
     * @returns - true if the index is valid for the given options, false otherwise
     */
    ComboBox.prototype._indexWithinBounds = function (options, index) {
        if (!options) {
            return false;
        }
        return index >= 0 && index < options.length;
    };
    /**
     * Process the new input's new value when the comboBox
     * allows freeform entry
     * @param updatedValue - the input's newly changed value
     */
    ComboBox.prototype._processInputChangeWithFreeform = function (updatedValue) {
        var _this = this;
        var currentOptions = this.state.currentOptions;
        updatedValue = this._removeZeroWidthSpaces(updatedValue);
        var newCurrentPendingValueValidIndex = -1;
        // if the new value is empty, see if we have an exact match
        // and then set the pending info
        if (updatedValue === '') {
            var items = currentOptions
                .map(function (item, index) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index });
            })
                .filter(function (option) { return option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header && option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider; })
                .filter(function (option) { return _this._getPreviewText(option) === updatedValue; });
            // if we found a match remember the index
            if (items.length === 1) {
                newCurrentPendingValueValidIndex = items[0].index;
            }
            this._setPendingInfo(updatedValue, newCurrentPendingValueValidIndex, updatedValue);
            return;
        }
        // Remember the original value and then,
        // make the value lowercase for comparison
        var originalUpdatedValue = updatedValue;
        updatedValue = updatedValue.toLocaleLowerCase();
        var newSuggestedDisplayValue = '';
        // If autoComplete is on, attempt to find a match from the available options
        if (this.props.autoComplete === 'on') {
            // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value
            var items = currentOptions
                .map(function (item, index) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index });
            })
                .filter(function (option) { return option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header && option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider; })
                .filter(function (option) {
                return _this._getPreviewText(option)
                    .toLocaleLowerCase()
                    .indexOf(updatedValue) === 0;
            });
            if (items.length > 0) {
                // use ariaLabel as the value when the option is set
                var text = this._getPreviewText(items[0]);
                // If the user typed out the complete option text, we don't need any suggested display text anymore
                newSuggestedDisplayValue = text.toLocaleLowerCase() !== updatedValue ? text : '';
                // remember the index of the match we found
                newCurrentPendingValueValidIndex = items[0].index;
            }
        }
        else {
            // If autoComplete is off, attempt to find a match only when the value is exactly equal to the text of an option
            var items = currentOptions
                .map(function (item, index) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index });
            })
                .filter(function (option) { return option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header && option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider; })
                .filter(function (option) { return _this._getPreviewText(option).toLocaleLowerCase() === updatedValue; });
            // if we found a match remember the index
            if (items.length === 1) {
                newCurrentPendingValueValidIndex = items[0].index;
            }
        }
        // Set the updated state
        this._setPendingInfo(originalUpdatedValue, newCurrentPendingValueValidIndex, newSuggestedDisplayValue);
    };
    /**
     * Process the new input's new value when the comboBox
     * does not allow freeform entry
     * @param updatedValue - the input's newly changed value
     */
    ComboBox.prototype._processInputChangeWithoutFreeform = function (updatedValue) {
        var _this = this;
        var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentOptions = _a.currentOptions;
        updatedValue = this._removeZeroWidthSpaces(updatedValue);
        if (this.props.autoComplete === 'on') {
            // If autoComplete is on while allow freeform is off,
            // we will remember the keypresses and build up a string to attempt to match
            // as long as characters are typed within a the timeout span of each other,
            // otherwise we will clear the string and start building a new one on the next keypress.
            // Also, only do this processing if we have a non-empty value
            if (updatedValue !== '') {
                // If we have a pending autocomplete clearing task,
                // we know that the user is typing with keypresses happening
                // within the timeout of each other so remove the clearing task
                // and continue building the pending value with the udpated value
                if (this._lastReadOnlyAutoCompleteChangeTimeoutId !== undefined) {
                    this._async.clearTimeout(this._lastReadOnlyAutoCompleteChangeTimeoutId);
                    this._lastReadOnlyAutoCompleteChangeTimeoutId = undefined;
                    updatedValue = this._normalizeToString(currentPendingValue) + updatedValue;
                }
                var originalUpdatedValue = updatedValue;
                updatedValue = updatedValue.toLocaleLowerCase();
                // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value
                var items = currentOptions
                    .map(function (item, i) {
                    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: i });
                })
                    .filter(function (option) { return option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header && option.itemType !== _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider; })
                    .filter(function (option) { return option.text.toLocaleLowerCase().indexOf(updatedValue) === 0; });
                // If we found a match, udpdate the state
                if (items.length > 0) {
                    this._setPendingInfo(originalUpdatedValue, items[0].index, this._getPreviewText(items[0]));
                }
                // Schedule a timeout to clear the pending value after the timeout span
                this._lastReadOnlyAutoCompleteChangeTimeoutId = this._async.setTimeout(function () {
                    _this._lastReadOnlyAutoCompleteChangeTimeoutId = undefined;
                }, ReadOnlyPendingAutoCompleteTimeout);
                return;
            }
        }
        // If we get here, either autoComplete is on or we did not find a match with autoComplete on.
        // Remember we are not allowing freeform, so at this point, if we have a pending valid value index
        // use that; otherwise use the selectedIndex
        var index = currentPendingValueValidIndex >= 0 ? currentPendingValueValidIndex : this._getFirstSelectedIndex();
        // Since we are not allowing freeform, we need to
        // set both the pending and suggested values/index
        // to allow us to select all content in the input to
        // give the illusion that we are readonly (e.g. freeform off)
        this._setPendingInfoFromIndex(index);
    };
    ComboBox.prototype._getFirstSelectedIndex = function () {
        return this.state.selectedIndices && this.state.selectedIndices.length > 0 ? this.state.selectedIndices[0] : -1;
    };
    /**
     * Walk along the options starting at the index, stepping by the delta (positive or negative)
     * looking for the next valid selectable index (e.g. skipping headings and dividers)
     * @param index - the index to get the next selectable index from
     * @param delta - optional delta to step by when finding the next index, defaults to 0
     * @returns - the next valid selectable index. If the new index is outside of the bounds,
     * it will snap to the edge of the options array. If delta == 0 and the given index is not selectable
     */
    ComboBox.prototype._getNextSelectableIndex = function (index, searchDirection) {
        var currentOptions = this.state.currentOptions;
        var newIndex = index + searchDirection;
        newIndex = Math.max(0, Math.min(currentOptions.length - 1, newIndex));
        if (!this._indexWithinBounds(currentOptions, newIndex)) {
            return -1;
        }
        var option = currentOptions[newIndex];
        if (option.itemType === _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Header ||
            option.itemType === _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_12__["SelectableOptionMenuItemType"].Divider ||
            option.hidden === true) {
            // Should we continue looking for an index to select?
            if (searchDirection !== SearchDirection.none &&
                ((newIndex > 0 && searchDirection < SearchDirection.none) ||
                    (newIndex >= 0 && newIndex < currentOptions.length && searchDirection > SearchDirection.none))) {
                newIndex = this._getNextSelectableIndex(newIndex, searchDirection);
            }
            else {
                // If we cannot perform a useful search just return the index we were given
                return index;
            }
        }
        // We have the next valid selectable index, return it
        return newIndex;
    };
    /**
     * Set the selected index. Note, this is
     * the "real" selected index, not the pending selected index
     * @param index - the index to set (or the index to set from if a search direction is provided)
     * @param searchDirection - the direction to search along the options from the given index
     */
    ComboBox.prototype._setSelectedIndex = function (index, submitPendingValueEvent, searchDirection) {
        var _this = this;
        if (searchDirection === void 0) { searchDirection = SearchDirection.none; }
        var _a = this.props, onChange = _a.onChange, onPendingValueChanged = _a.onPendingValueChanged;
        var currentOptions = this.state.currentOptions;
        var initialIndices = this.state.selectedIndices;
        // Clone selectedIndices so we don't mutate state
        var selectedIndices = initialIndices ? initialIndices.slice() : [];
        // Find the next selectable index, if searchDirection is none
        // we will get our starting index back
        index = this._getNextSelectableIndex(index, searchDirection);
        if (!this._indexWithinBounds(currentOptions, index)) {
            return;
        }
        // Are we at a new index? If so, update the state, otherwise
        // there is nothing to do
        if (this.props.multiSelect || selectedIndices.length < 1 || (selectedIndices.length === 1 && selectedIndices[0] !== index)) {
            var option_1 = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, currentOptions[index]);
            if (!option_1) {
                return;
            }
            if (this.props.multiSelect) {
                // Setting the initial state of option.selected in Multi-select combobox by checking the
                // selectedIndices array and overriding the undefined issue
                option_1.selected = option_1.selected !== undefined ? !option_1.selected : selectedIndices.indexOf(index) < 0;
                if (option_1.selected && selectedIndices.indexOf(index) < 0) {
                    selectedIndices.push(index);
                }
                else if (!option_1.selected && selectedIndices.indexOf(index) >= 0) {
                    selectedIndices = selectedIndices.filter(function (value) { return value !== index; });
                }
            }
            else {
                selectedIndices[0] = index;
            }
            submitPendingValueEvent.persist();
            // Only setstate if combobox is uncontrolled.
            if (this.props.selectedKey || this.props.selectedKey === null) {
                // If ComboBox value is changed, revert preview first
                if (this._hasPendingValue && onPendingValueChanged) {
                    onPendingValueChanged();
                    this._hasPendingValue = false;
                }
                if (onChange) {
                    onChange(submitPendingValueEvent, option_1, index, undefined);
                }
            }
            else {
                // Update current options
                var changedOptions = currentOptions.slice();
                changedOptions[index] = option_1;
                // Call onChange after state is updated
                this.setState({
                    selectedIndices: selectedIndices,
                    currentOptions: changedOptions
                }, function () {
                    // If ComboBox value is changed, revert preview first
                    if (_this._hasPendingValue && onPendingValueChanged) {
                        onPendingValueChanged();
                        _this._hasPendingValue = false;
                    }
                    if (onChange) {
                        onChange(submitPendingValueEvent, option_1, index, undefined);
                    }
                });
            }
        }
        // clear all of the pending info
        this._clearPendingInfo();
    };
    /**
     * Submit a pending value if there is one
     */
    ComboBox.prototype._submitPendingValue = function (submitPendingValueEvent) {
        var _a = this.props, onChange = _a.onChange, allowFreeform = _a.allowFreeform, autoComplete = _a.autoComplete;
        var _b = this.state, currentPendingValue = _b.currentPendingValue, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentOptions = _b.currentOptions, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;
        var selectedIndices = this.state.selectedIndices;
        // Do not submit any pending value if we
        // have already initiated clearing the pending info
        if (this._processingClearPendingInfo) {
            return;
        }
        // If we allow freeform we need to handle that
        if (allowFreeform) {
            // if currentPendingValue is null or undefined the user did not submit anything
            // (not even empty because we would have stored that as the pending value)
            if (currentPendingValue === null || currentPendingValue === undefined) {
                // if a user did not type anything they may just hovered over an item
                if (currentPendingValueValidIndexOnHover >= 0) {
                    this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);
                    this._clearPendingInfo();
                }
                return;
            }
            // Check to see if the user typed an exact match
            if (this._indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {
                var pendingOptionText = this._getPreviewText(currentOptions[currentPendingValueValidIndex]).toLocaleLowerCase();
                // By exact match, that means: our pending value is the same as the the pending option text OR
                // the pending option starts with the pending value and we have an "autoComplete" selection
                // where the total length is equal to pending option length OR
                // the live value in the underlying input matches the pending option; update the state
                if (currentPendingValue.toLocaleLowerCase() === pendingOptionText ||
                    ((autoComplete &&
                        pendingOptionText.indexOf(currentPendingValue.toLocaleLowerCase()) === 0 &&
                        (this._autofill.current &&
                            this._autofill.current.isValueSelected &&
                            currentPendingValue.length + (this._autofill.current.selectionEnd - this._autofill.current.selectionStart) ===
                                pendingOptionText.length)) ||
                        (this._autofill.current &&
                            this._autofill.current.inputElement &&
                            this._autofill.current.inputElement.value.toLocaleLowerCase() === pendingOptionText))) {
                    this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);
                    this._clearPendingInfo();
                    return;
                }
            }
            if (onChange) {
                if (onChange) {
                    // trigger onChange to clear value
                    onChange(submitPendingValueEvent, undefined, undefined, currentPendingValue);
                }
            }
            else {
                // If we are not controlled, create a new selected option
                var newOption = {
                    key: currentPendingValue || Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])(),
                    text: this._normalizeToString(currentPendingValue)
                };
                // If it's multiselect, set selected state to true
                if (this.props.multiSelect) {
                    newOption.selected = true;
                }
                var newOptions = currentOptions.concat([newOption]);
                if (selectedIndices) {
                    if (!this.props.multiSelect) {
                        selectedIndices = [];
                    }
                    selectedIndices.push(newOptions.length - 1);
                }
                this.setState({
                    currentOptions: newOptions,
                    selectedIndices: selectedIndices
                });
            }
        }
        else if (currentPendingValueValidIndex >= 0) {
            // Since we are not allowing freeform, we must have a matching
            // to be able to update state
            this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);
        }
        else if (currentPendingValueValidIndexOnHover >= 0) {
            // If all else failed and we were hovering over an item, select it
            this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);
        }
        // Finally, clear the pending info
        this._clearPendingInfo();
    };
    ComboBox.prototype._onCalloutLayerMounted = function () {
        // In persistMenu mode _onLayerMounted is only called once for the lifetime
        // of the component. Any functionality required for callout "on mount" can
        // go here so that we can also call it again during callout dismissal to reset
        // object state.
        this._gotMouseMove = false;
    };
    // Render separator
    ComboBox.prototype._renderSeparator = function (item) {
        var index = item.index, key = item.key;
        if (index && index > 0) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "separator", key: key, className: this._classNames.divider });
        }
        return null;
    };
    ComboBox.prototype._renderHeader = function (item) {
        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOptionContent : _a;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: item.key, className: this._classNames.header }, onRenderOption(item, this._onRenderOptionContent)));
    };
    /**
     * If we are coming from a mouseOut:
     * there is no visible selected option.
     *
     * Else if We are hovering over an item:
     * that gets the selected look.
     *
     * Else:
     * Use the current valid pending index if it exists OR
     * we do not have a valid index and we currently have a pending input value,
     * otherwise use the selected index
     * */
    ComboBox.prototype._isOptionSelected = function (index) {
        var currentPendingValueValidIndexOnHover = this.state.currentPendingValueValidIndexOnHover;
        // If the hover state is set to clearAll, don't show a selected index.
        // Note, this happens when the user moused out of the menu items
        if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {
            return false;
        }
        if (!this.props.multiSelect && this._getPendingSelectedIndex(true /* includePendingValue */) === index) {
            return true;
        }
        var idxOfSelectedIndex = -1;
        if (this.props.multiSelect && index !== undefined && this.state.selectedIndices) {
            idxOfSelectedIndex = this.state.selectedIndices.indexOf(index);
        }
        return idxOfSelectedIndex >= 0;
    };
    /**
     * Gets the pending selected index taking into account hover, valueValidIndex, and selectedIndex
     * @param includeCurrentPendingValue - Should we include the currentPendingValue when
     * finding the index
     */
    ComboBox.prototype._getPendingSelectedIndex = function (includeCurrentPendingValue) {
        var _a = this.state, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValue = _a.currentPendingValue;
        return currentPendingValueValidIndexOnHover >= 0
            ? currentPendingValueValidIndexOnHover
            : currentPendingValueValidIndex >= 0 ||
                (includeCurrentPendingValue && (currentPendingValue !== null && currentPendingValue !== undefined))
                ? currentPendingValueValidIndex
                : this.props.multiSelect
                    ? 0
                    : this._getFirstSelectedIndex();
    };
    /**
     * Scroll the selected element into view
     */
    ComboBox.prototype._scrollIntoView = function () {
        var _a = this.props, onScrollToItem = _a.onScrollToItem, scrollSelectedToTop = _a.scrollSelectedToTop;
        var _b = this.state, currentPendingValueValidIndex = _b.currentPendingValueValidIndex, currentPendingValue = _b.currentPendingValue;
        if (onScrollToItem) {
            // Use the custom scroll handler
            onScrollToItem(currentPendingValueValidIndex >= 0 || currentPendingValue !== '' ? currentPendingValueValidIndex : this._getFirstSelectedIndex());
        }
        else if (this._selectedElement.current && this._selectedElement.current.offsetParent) {
            // We are using refs, scroll the ref into view
            if (scrollSelectedToTop) {
                this._selectedElement.current.offsetParent.scrollIntoView(true);
            }
            else {
                var alignToTop = true;
                if (this._comboBoxMenu.current && this._comboBoxMenu.current.offsetParent) {
                    var scrollableParentRect = this._comboBoxMenu.current.offsetParent.getBoundingClientRect();
                    var selectedElementRect = this._selectedElement.current.offsetParent.getBoundingClientRect();
                    // If we are completely in view then we do not need to scroll
                    if (scrollableParentRect.top <= selectedElementRect.top &&
                        scrollableParentRect.top + scrollableParentRect.height >= selectedElementRect.top + selectedElementRect.height) {
                        return;
                    }
                    // If we are lower than the scrollable parent viewport then we should align to the bottom
                    if (scrollableParentRect.top + scrollableParentRect.height <= selectedElementRect.top + selectedElementRect.height) {
                        alignToTop = false;
                    }
                }
                this._selectedElement.current.offsetParent.scrollIntoView(alignToTop);
            }
        }
    };
    /**
     * Click handler for the menu items
     * to select the item and also close the menu
     * @param index - the index of the item that was clicked
     */
    ComboBox.prototype._onItemClick = function (item) {
        var _this = this;
        var onItemClick = this.props.onItemClick;
        var index = item.index;
        return function (ev) {
            onItemClick && onItemClick(ev, item, index);
            _this._setSelectedIndex(index, ev);
            if (!_this.props.multiSelect) {
                // only close the callout when it's in single-select mode
                _this.setState({
                    isOpen: false
                });
            }
        };
    };
    /**
     * Get the indices of the options that are marked as selected
     * @param options - the comboBox options
     * @param selectedKeys - the known selected keys to find
     * @returns - an array of the indices of the selected options, empty array if nothing is selected
     */
    ComboBox.prototype._getSelectedIndices = function (options, selectedKeys) {
        if (!options || !selectedKeys) {
            return [];
        }
        var selectedIndices = {};
        options.forEach(function (option, index) {
            if (option.selected) {
                selectedIndices[index] = true;
            }
        });
        var _loop_1 = function (selectedKey) {
            var index = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["findIndex"])(options, function (option) { return option.key === selectedKey; });
            if (index > -1) {
                selectedIndices[index] = true;
            }
        };
        for (var _i = 0, selectedKeys_1 = selectedKeys; _i < selectedKeys_1.length; _i++) {
            var selectedKey = selectedKeys_1[_i];
            _loop_1(selectedKey);
        }
        return Object.keys(selectedIndices)
            .map(Number)
            .sort();
    };
    /**
     * Reset the selected index by clearing the
     * input (of any pending text), clearing the pending state,
     * and setting the suggested display value to the last
     * selected state text
     */
    ComboBox.prototype._resetSelectedIndex = function () {
        var currentOptions = this.state.currentOptions;
        this._clearPendingInfo();
        var selectedIndex = this._getFirstSelectedIndex();
        if (selectedIndex > 0 && selectedIndex < currentOptions.length) {
            this.setState({
                suggestedDisplayValue: currentOptions[selectedIndex].text
            });
        }
        else if (this.props.text) {
            // If we had a value initially, restore it
            this.setState({
                suggestedDisplayValue: this.props.text
            });
        }
    };
    /**
     * Clears the pending info state
     */
    ComboBox.prototype._clearPendingInfo = function () {
        this._processingClearPendingInfo = true;
        this.setState({
            currentPendingValue: undefined,
            currentPendingValueValidIndex: -1,
            suggestedDisplayValue: undefined,
            currentPendingValueValidIndexOnHover: HoverStatus.default
        }, this._onAfterClearPendingInfo);
    };
    /**
     * Set the pending info
     * @param currentPendingValue - new pending value to set
     * @param currentPendingValueValidIndex - new pending value index to set
     * @param suggestedDisplayValue - new suggest display value to set
     */
    ComboBox.prototype._setPendingInfo = function (currentPendingValue, currentPendingValueValidIndex, suggestedDisplayValue) {
        if (currentPendingValueValidIndex === void 0) { currentPendingValueValidIndex = -1; }
        if (this._processingClearPendingInfo) {
            return;
        }
        this.setState({
            currentPendingValue: currentPendingValue && this._removeZeroWidthSpaces(currentPendingValue),
            currentPendingValueValidIndex: currentPendingValueValidIndex,
            suggestedDisplayValue: suggestedDisplayValue,
            currentPendingValueValidIndexOnHover: HoverStatus.default
        });
    };
    /**
     * Set the pending info from the given index
     * @param index - the index to set the pending info from
     */
    ComboBox.prototype._setPendingInfoFromIndex = function (index) {
        var currentOptions = this.state.currentOptions;
        if (index >= 0 && index < currentOptions.length) {
            var option = currentOptions[index];
            this._setPendingInfo(this._getPreviewText(option), index, this._getPreviewText(option));
        }
        else {
            this._clearPendingInfo();
        }
    };
    /**
     * Sets the pending info for the comboBox
     * @param index - the index to search from
     * @param searchDirection - the direction to search
     */
    ComboBox.prototype._setPendingInfoFromIndexAndDirection = function (index, searchDirection) {
        var currentOptions = this.state.currentOptions;
        // update index to allow content to wrap
        if (searchDirection === SearchDirection.forward && index >= currentOptions.length - 1) {
            index = -1;
        }
        else if (searchDirection === SearchDirection.backward && index <= 0) {
            index = currentOptions.length;
        }
        // get the next "valid" index
        var indexUpdate = this._getNextSelectableIndex(index, searchDirection);
        // if the two indicies are equal we didn't move and
        // we should attempt to get  get the first/last "valid" index to use
        // (Note, this takes care of the potential cases where the first/last
        // item is not focusable), otherwise use the updated index
        if (index === indexUpdate) {
            if (searchDirection === SearchDirection.forward) {
                index = this._getNextSelectableIndex(-1, searchDirection);
            }
            else if (searchDirection === SearchDirection.backward) {
                index = this._getNextSelectableIndex(currentOptions.length, searchDirection);
            }
        }
        else {
            index = indexUpdate;
        }
        if (this._indexWithinBounds(currentOptions, index)) {
            this._setPendingInfoFromIndex(index);
        }
    };
    ComboBox.prototype._notifyPendingValueChanged = function (prevState) {
        var onPendingValueChanged = this.props.onPendingValueChanged;
        if (!onPendingValueChanged) {
            return;
        }
        var _a = this.state, currentPendingValue = _a.currentPendingValue, currentOptions = _a.currentOptions, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover;
        var newPendingIndex = undefined;
        var newPendingValue = undefined;
        if (currentPendingValueValidIndexOnHover !== prevState.currentPendingValueValidIndexOnHover &&
            this._indexWithinBounds(currentOptions, currentPendingValueValidIndexOnHover)) {
            // Set new pending index if hover index was changed
            newPendingIndex = currentPendingValueValidIndexOnHover;
        }
        else if (currentPendingValueValidIndex !== prevState.currentPendingValueValidIndex &&
            this._indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {
            // Set new pending index if currentPendingValueValidIndex was changed
            newPendingIndex = currentPendingValueValidIndex;
        }
        else if (currentPendingValue !== prevState.currentPendingValue) {
            // Set pendingValue in the case it was changed and no index was changed
            newPendingValue = currentPendingValue;
        }
        // Notify when there is a new pending index/value. Also, if there is a pending value, it needs to send undefined.
        if (newPendingIndex !== undefined || newPendingValue !== undefined || this._hasPendingValue) {
            onPendingValueChanged(newPendingIndex !== undefined ? currentOptions[newPendingIndex] : undefined, newPendingIndex, newPendingValue);
            this._hasPendingValue = newPendingIndex !== undefined || newPendingValue !== undefined;
        }
    };
    /**
     * Sets the isOpen state and updates focusInputAfterClose
     */
    ComboBox.prototype._setOpenStateAndFocusOnClose = function (isOpen, focusInputAfterClose) {
        this._focusInputAfterClose = focusInputAfterClose;
        this.setState({
            isOpen: isOpen
        });
    };
    /**
     * Returns true if the key for the event is alt (Mac option) or meta (Mac command).
     */
    ComboBox.prototype._isAltOrMeta = function (ev) {
        return ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].alt || ev.key === 'Meta';
    };
    ComboBox.prototype._onOptionMouseEnter = function (index) {
        if (this._shouldIgnoreMouseEvent()) {
            return;
        }
        this.setState({
            currentPendingValueValidIndexOnHover: index
        });
    };
    ComboBox.prototype._onOptionMouseMove = function (index) {
        this._gotMouseMove = true;
        if (!this._isScrollIdle || this.state.currentPendingValueValidIndexOnHover === index) {
            return;
        }
        this.setState({
            currentPendingValueValidIndexOnHover: index
        });
    };
    ComboBox.prototype._shouldIgnoreMouseEvent = function () {
        return !this._isScrollIdle || !this._gotMouseMove;
    };
    /**
     * Handle dismissing the menu and
     * eating the required key event when disabled
     * @param ev - the keyboard event that was fired
     */
    ComboBox.prototype._handleInputWhenDisabled = function (ev) {
        // If we are disabled, close the menu (if needed)
        // and eat all keystokes other than TAB or ESC
        if (this.props.disabled) {
            if (this.state.isOpen) {
                this.setState({ isOpen: false });
            }
            // When disabled stop propagation and prevent default
            // of the event unless we have a tab, escape, or function key
            if (ev !== null &&
                ev.which !== _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].tab &&
                ev.which !== _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].escape &&
                (ev.which < 112 /* F1 */ || ev.which > 123) /* F12 */) {
                ev.stopPropagation();
                ev.preventDefault();
            }
        }
    };
    ComboBox.prototype._handleTouchAndPointerEvent = function () {
        var _this = this;
        // If we already have an existing timeeout from a previous touch and pointer event
        // cancel that timeout so we can set a nwe one.
        if (this._lastTouchTimeoutId !== undefined) {
            this._async.clearTimeout(this._lastTouchTimeoutId);
            this._lastTouchTimeoutId = undefined;
        }
        this._processingTouch = true;
        this._lastTouchTimeoutId = this._async.setTimeout(function () {
            _this._processingTouch = false;
            _this._lastTouchTimeoutId = undefined;
        }, TouchIdleDelay);
    };
    /**
     * Get the styles for the current option.
     * @param item - Item props for the current option
     */
    ComboBox.prototype._getCaretButtonStyles = function () {
        var customCaretDownButtonStyles = this.props.caretDownButtonStyles;
        return Object(_ComboBox_styles__WEBPACK_IMPORTED_MODULE_8__["getCaretDownButtonStyles"])(this.props.theme, customCaretDownButtonStyles);
    };
    /**
     * Get the styles for the current option.
     * @param item - Item props for the current option
     */
    ComboBox.prototype._getCurrentOptionStyles = function (item) {
        var customStylesForAllOptions = this.props.comboBoxOptionStyles;
        var customStylesForCurrentOption = item.styles;
        return Object(_ComboBox_styles__WEBPACK_IMPORTED_MODULE_8__["getOptionStyles"])(this.props.theme, customStylesForAllOptions, customStylesForCurrentOption, this._isPendingOption(item), item.hidden);
    };
    /**
     * Get the aria-activedescendant value for the comboxbox.
     * @returns the id of the current focused combo item, otherwise the id of the currently selected element, null otherwise
     */
    ComboBox.prototype._getAriaActiveDescentValue = function () {
        var descendantText = this.state.isOpen && this.state.selectedIndices && this.state.selectedIndices.length >= 0
            ? this._id + '-list' + this.state.selectedIndices[0]
            : undefined;
        if (this.state.isOpen && this.state.focused && this.state.currentPendingValueValidIndex !== -1) {
            descendantText = this._id + '-list' + this.state.currentPendingValueValidIndex;
        }
        return descendantText;
    };
    /**
     * Get the aria autocomplete value for the Combobox
     * @returns 'inline' if auto-complete automatically dynamic, 'both' if we have a list of possible values to pick from and can
     * dynamically populate input, and 'none' if auto-complete is not enabled as we can't give user inputs.
     */
    ComboBox.prototype._getAriaAutoCompleteValue = function () {
        var autoComplete = !this.props.disabled && this.props.autoComplete === 'on';
        return autoComplete ? (this.props.allowFreeform ? 'inline' : 'both') : 'none';
    };
    ComboBox.prototype._isPendingOption = function (item) {
        return item && item.index === this.state.currentPendingValueValidIndex;
    };
    /**
     * Given default selected key(s) and selected key(s), return the selected keys(s).
     * When default selected key(s) are available, they take precedence and return them instead of selected key(s).
     *
     * @returns No matter what specific types the input parameters are, always return an array of
     *  either strings or numbers instead of premitive type.  This normlization makes caller's logic easier.
     */
    ComboBox.prototype._buildDefaultSelectedKeys = function (defaultSelectedKey, selectedKey) {
        var selectedKeys = this._buildSelectedKeys(defaultSelectedKey);
        if (selectedKeys.length) {
            return selectedKeys;
        }
        return this._buildSelectedKeys(selectedKey);
    };
    ComboBox.prototype._buildSelectedKeys = function (selectedKey) {
        if (selectedKey === undefined) {
            return [];
        }
        // need to cast here so typescript does not complain
        return (selectedKey instanceof Array ? selectedKey : [selectedKey]);
    };
    // For scenarios where the option's text prop contains embedded styles, we use the option's
    // ariaLabel value as the text in the input and for autocomplete matching. We know to use this
    // when the useAriaLabelAsText prop is set to true
    ComboBox.prototype._getPreviewText = function (item) {
        return item.useAriaLabelAsText && item.ariaLabel ? item.ariaLabel : item.text;
    };
    ComboBox.prototype._normalizeToString = function (value) {
        return value || '';
    };
    ComboBox.prototype._removeZeroWidthSpaces = function (value) {
        // remove any zero width space characters
        return value.replace(RegExp('​', 'g'), '');
    };
    ComboBox.defaultProps = {
        options: [],
        allowFreeform: false,
        autoComplete: 'on',
        buttonIconProps: { iconName: 'ChevronDown' }
    };
    ComboBox = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('ComboBox', ['theme', 'styles'], true)
    ], ComboBox);
    return ComboBox;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ComboBox/ComboBox.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptionStyles", function() { return getOptionStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCaretDownButtonStyles", function() { return getCaretDownButtonStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var ComboBoxHeight = 32;
var ComboBoxLineHeight = 30;
var ComboBoxCaretDownWidth = 32;
var ComboBoxOptionHeight = 36;
var getDisabledStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme) {
    var _a;
    var semanticColors = theme.semanticColors;
    return {
        backgroundColor: semanticColors.disabledBackground,
        borderColor: semanticColors.disabledBackground,
        color: semanticColors.disabledText,
        cursor: 'default',
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                borderColor: 'GrayText',
                color: 'GrayText'
            },
            _a)
    };
});
var getListOptionHighContrastStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme) {
    var _a;
    return {
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                backgroundColor: 'Highlight',
                borderColor: 'Highlight',
                color: 'HighlightText',
                MsHighContrastAdjust: 'none'
            },
            _a)
    };
});
var getOptionStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStylesForAllOptions, customOptionStylesForCurrentOption, isPending, isHidden) {
    var _a;
    var palette = theme.palette, semanticColors = theme.semanticColors;
    var option = {
        textHoveredColor: semanticColors.menuItemTextHovered,
        textSelectedColor: palette.neutralDark,
        textDisabledColor: semanticColors.disabledText,
        backgroundHoveredColor: semanticColors.menuItemBackgroundHovered,
        backgroundPressedColor: semanticColors.menuItemBackgroundPressed
    };
    var optionStyles = {
        root: [
            theme.fonts.medium,
            {
                backgroundColor: isPending ? option.backgroundHoveredColor : 'transparent',
                boxSizing: 'border-box',
                cursor: 'pointer',
                display: isHidden ? 'none' : 'block',
                width: '100%',
                height: 'auto',
                minHeight: ComboBoxOptionHeight,
                lineHeight: '20px',
                padding: '0 8px',
                position: 'relative',
                borderWidth: '1px',
                borderStyle: 'solid',
                borderColor: 'transparent',
                borderRadius: 0,
                wordWrap: 'break-word',
                overflowWrap: 'break-word',
                textAlign: 'left',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'Background'
                    },
                    _a['&.ms-Checkbox'] = {
                        display: 'flex',
                        alignItems: 'center'
                    },
                    _a['&.ms-Button--command:hover:active'] = {
                        backgroundColor: option.backgroundPressedColor
                    },
                    _a)
            }
        ],
        rootHovered: {
            backgroundColor: option.backgroundHoveredColor,
            color: option.textHoveredColor
        },
        rootFocused: {
            backgroundColor: option.backgroundHoveredColor
        },
        rootChecked: [
            {
                backgroundColor: 'transparent',
                color: option.textSelectedColor,
                selectors: {
                    ':hover': {
                        backgroundColor: option.backgroundHoveredColor
                    }
                }
            },
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -1, isFocusedOnly: false }),
            getListOptionHighContrastStyles(theme)
        ],
        rootDisabled: {
            color: option.textDisabledColor,
            cursor: 'default'
        },
        optionText: {
            overflow: 'hidden',
            whiteSpace: 'nowrap',
            textOverflow: 'ellipsis',
            minWidth: '0px',
            maxWidth: '100%',
            wordWrap: 'break-word',
            overflowWrap: 'break-word',
            display: 'inline-block'
        },
        optionTextWrapper: {
            maxWidth: '100%',
            display: 'flex',
            alignItems: 'center'
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(optionStyles, customStylesForAllOptions, customOptionStylesForCurrentOption);
});
var getCaretDownButtonStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles) {
    var _a;
    var semanticColors = theme.semanticColors, fonts = theme.fonts;
    var caret = {
        buttonTextColor: semanticColors.bodySubtext,
        buttonTextHoveredCheckedColor: semanticColors.buttonTextChecked,
        buttonBackgroundHoveredColor: semanticColors.listItemBackgroundHovered,
        buttonBackgroundCheckedColor: semanticColors.listItemBackgroundChecked,
        buttonBackgroundCheckedHoveredColor: semanticColors.listItemBackgroundCheckedHovered
    };
    var styles = {
        root: {
            color: caret.buttonTextColor,
            fontSize: fonts.small.fontSize,
            position: 'absolute',
            // The negative positioning accounts for the 1px root border now that box-sizing is border-box
            top: '-1px',
            right: '-1px',
            height: ComboBoxHeight,
            lineHeight: ComboBoxLineHeight,
            width: ComboBoxCaretDownWidth,
            textAlign: 'center',
            cursor: 'default',
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'ButtonFace',
                    borderColor: 'ButtonText',
                    color: 'ButtonText',
                    MsHighContrastAdjust: 'none'
                },
                _a)
        },
        icon: {
            fontSize: fonts.small.fontSize
        },
        rootHovered: {
            backgroundColor: caret.buttonBackgroundHoveredColor,
            color: caret.buttonTextHoveredCheckedColor,
            cursor: 'pointer'
        },
        rootPressed: {
            backgroundColor: caret.buttonBackgroundCheckedColor,
            color: caret.buttonTextHoveredCheckedColor
        },
        rootChecked: {
            backgroundColor: caret.buttonBackgroundCheckedColor,
            color: caret.buttonTextHoveredCheckedColor
        },
        rootCheckedHovered: {
            backgroundColor: caret.buttonBackgroundCheckedHoveredColor,
            color: caret.buttonTextHoveredCheckedColor
        },
        rootDisabled: getDisabledStyles(theme)
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(styles, customStyles);
});
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles, comboBoxOptionWidth) {
    var _a, _b, _c, _d;
    var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;
    var root = {
        textColor: semanticColors.bodyText,
        borderColor: semanticColors.inputBorder,
        borderHoveredColor: semanticColors.inputBorderHovered,
        borderPressedColor: semanticColors.inputFocusBorderAlt,
        borderFocusedColor: semanticColors.inputFocusBorderAlt,
        backgroundColor: semanticColors.bodyBackground,
        erroredColor: semanticColors.errorText
    };
    var option = {
        headerTextColor: semanticColors.menuHeader,
        dividerBorderColor: semanticColors.bodyDivider
    };
    // placeholder style variables
    var placeholderStyles = {
        color: semanticColors.inputPlaceholderText
    };
    var placeholderStylesHovered = {
        color: semanticColors.inputTextHovered
    };
    var disabledPlaceholderStyles = {
        color: semanticColors.disabledText
    };
    var ComboBoxRootHighContrastFocused = {
        color: 'HighlightText',
        borderColor: 'Highlight',
        backgroundColor: 'Window',
        borderWidth: '2px',
        MsHighContrastAdjust: 'none',
        paddingLeft: '11px',
        paddingTop: '0',
        paddingBottom: '0',
        selectors: {
            '.ms-ComboBox-CaretDown-button': {
                // Negative positioning to account for the 2px border
                right: '-2px',
                top: '-2px'
            }
        }
    };
    var styles = {
        container: {},
        label: {},
        labelDisabled: {},
        root: [
            theme.fonts.medium,
            {
                boxShadow: 'none',
                marginLeft: '0',
                paddingTop: 1,
                paddingBottom: 1,
                paddingRight: ComboBoxCaretDownWidth,
                paddingLeft: 8,
                color: root.textColor,
                position: 'relative',
                outline: '0',
                userSelect: 'none',
                backgroundColor: root.backgroundColor,
                borderWidth: '1px',
                borderStyle: 'solid',
                borderColor: root.borderColor,
                borderRadius: effects.roundedCorner2,
                cursor: 'text',
                display: 'block',
                height: ComboBoxHeight,
                overflow: 'hidden',
                whiteSpace: 'nowrap',
                textOverflow: 'ellipsis',
                boxSizing: 'border-box',
                selectors: {
                    '.ms-Label': {
                        display: 'inline-block',
                        marginBottom: '8px'
                    },
                    '&.is-open': {
                        borderColor: root.borderColor,
                        selectors: (_a = {},
                            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = ComboBoxRootHighContrastFocused,
                            _a)
                    }
                }
            }
        ],
        rootHovered: {
            borderColor: root.borderHoveredColor,
            selectors: (_b = {
                    '.ms-ComboBox-Input': [{ color: semanticColors.inputTextHovered }, Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(placeholderStylesHovered)]
                },
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'HighlightText',
                    borderColor: 'Highlight',
                    backgroundColor: 'Window',
                    MsHighContrastAdjust: 'none'
                },
                _b)
        },
        rootPressed: {
            borderColor: root.borderPressedColor,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = ComboBoxRootHighContrastFocused,
                _c)
        },
        rootFocused: {
            borderColor: root.borderFocusedColor,
            selectors: (_d = {
                    '.ms-ComboBox-Input': {
                        color: semanticColors.inputTextHovered
                    }
                },
                _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = ComboBoxRootHighContrastFocused,
                _d)
        },
        rootDisabled: getDisabledStyles(theme),
        rootError: {
            borderColor: root.erroredColor,
            marginBottom: '5px'
        },
        rootDisallowFreeForm: {},
        input: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(placeholderStyles),
            {
                backgroundColor: root.backgroundColor,
                color: root.textColor,
                boxSizing: 'border-box',
                width: '100%',
                height: '28px',
                borderStyle: 'none',
                outline: 'none',
                font: 'inherit',
                textOverflow: 'ellipsis',
                padding: '0',
                selectors: {
                    '::-ms-clear': {
                        display: 'none'
                    }
                }
            }
        ],
        inputDisabled: [getDisabledStyles(theme), Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(disabledPlaceholderStyles)],
        errorMessage: [
            theme.fonts.small,
            {
                color: root.erroredColor
            }
        ],
        callout: {
            boxShadow: effects.elevation8
        },
        optionsContainerWrapper: {
            width: comboBoxOptionWidth
        },
        optionsContainer: {
            display: 'block'
        },
        header: [
            fonts.medium,
            {
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                color: option.headerTextColor,
                backgroundColor: 'none',
                borderStyle: 'none',
                height: ComboBoxOptionHeight,
                lineHeight: ComboBoxOptionHeight,
                cursor: 'default',
                padding: '0 8px',
                userSelect: 'none',
                textAlign: 'left'
            }
        ],
        divider: {
            height: 1,
            backgroundColor: option.dividerBorderColor
        }
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(styles, customStyles);
});


/***/ }),

/***/ "./lib/components/ComboBox/VirtualizedComboBox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualizedComboBox", function() { return VirtualizedComboBox; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ComboBox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ComboBox/ComboBox.js");
/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/List.js");





var VirtualizedComboBox = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualizedComboBox, _super);
    function VirtualizedComboBox() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /** The combo box element */
        _this._comboBox = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /** The virtualized list element */
        _this._list = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderList = function (props) {
            var onRenderItem = props.onRenderItem;
            // Render virtualized list
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_List__WEBPACK_IMPORTED_MODULE_4__["List"], { componentRef: _this._list, role: "listbox", items: props.options, onRenderCell: onRenderItem ? function (item) { return onRenderItem(item); } : function () { return null; } }));
        };
        _this._onScrollToItem = function (itemIndex) {
            // We are using the List component, call scrollToIndex
            _this._list.current && _this._list.current.scrollToIndex(itemIndex);
        };
        return _this;
    }
    Object.defineProperty(VirtualizedComboBox.prototype, "selectedOptions", {
        /**
         * All selected options
         */
        get: function () {
            if (this._comboBox.current) {
                return this._comboBox.current.selectedOptions;
            }
            return [];
        },
        enumerable: true,
        configurable: true
    });
    VirtualizedComboBox.prototype.dismissMenu = function () {
        if (this._comboBox.current) {
            return this._comboBox.current.dismissMenu();
        }
    };
    VirtualizedComboBox.prototype.focus = function () {
        if (this._comboBox.current) {
            this._comboBox.current.focus();
            return true;
        }
        return false;
    };
    VirtualizedComboBox.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ComboBox__WEBPACK_IMPORTED_MODULE_3__["ComboBox"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { componentRef: this._comboBox, onRenderList: this._onRenderList, onScrollToItem: this._onScrollToItem })));
    };
    return VirtualizedComboBox;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ComboBox/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_selectableOption_SelectableOption_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selectableOption/SelectableOption.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _utilities_selectableOption_SelectableOption_types__WEBPACK_IMPORTED_MODULE_0__["SelectableOptionMenuItemType"]; });

/* harmony import */ var _ComboBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ComboBox/ComboBox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComboBox", function() { return _ComboBox__WEBPACK_IMPORTED_MODULE_1__["ComboBox"]; });

/* harmony import */ var _VirtualizedComboBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ComboBox/VirtualizedComboBox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualizedComboBox", function() { return _VirtualizedComboBox__WEBPACK_IMPORTED_MODULE_2__["VirtualizedComboBox"]; });






/***/ }),

/***/ "./lib/components/CommandBar/CommandBar.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBarBase", function() { return CommandBarBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _OverflowSet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/OverflowSet.js");
/* harmony import */ var _ResizeGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/ResizeGroup.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Tooltip.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("../utilities/lib/index.js");
/* harmony import */ var _uifabric_styling__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("../styling/lib/index.js");











var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var CommandBarBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CommandBarBase, _super);
    function CommandBarBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._overflowSet = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._resizeGroup = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderData = function (data) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZone"], { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.root), direction: _FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZoneDirection"].horizontal, role: 'menubar', "aria-label": _this.props.ariaLabel },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_OverflowSet__WEBPACK_IMPORTED_MODULE_3__["OverflowSet"], { componentRef: _this._resolveRef('_overflowSet'), className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.primarySet), doNotContainWithinFocusZone: true, role: 'presentation', items: data.primaryItems, overflowItems: data.overflowItems.length ? data.overflowItems : undefined, onRenderItem: _this._onRenderItem, onRenderOverflowButton: _this._onRenderOverflowButton }),
                data.farItems && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_OverflowSet__WEBPACK_IMPORTED_MODULE_3__["OverflowSet"], { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(_this._classNames.secondarySet), doNotContainWithinFocusZone: true, role: 'presentation', items: data.farItems, onRenderItem: _this._onRenderItem, onRenderOverflowButton: _Utilities__WEBPACK_IMPORTED_MODULE_2__["nullRender"] }))));
        };
        _this._onRenderItem = function (item) {
            if (item.onRender) {
                // These are the top level items, there is no relevant menu dismissing function to
                // provide for the IContextualMenuItem onRender function. Pass in a no op function instead.
                return item.onRender(item, function () { return undefined; });
            }
            var itemText = item.text || item.name;
            var rootStyles = {
                height: '100%'
            };
            var labelStyles = {
                whiteSpace: 'nowrap'
            };
            var commandButtonProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ allowDisabledFocus: true, role: 'menuitem' }, item, { styles: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item.buttonStyles, { root: item.buttonStyles ? Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_9__["mergeStyles"])(rootStyles, item.buttonStyles.root) : rootStyles, label: item.buttonStyles ? Object(_uifabric_styling__WEBPACK_IMPORTED_MODULE_9__["mergeStyles"])(labelStyles, item.buttonStyles.label) : labelStyles }), className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-CommandBarItem-link', item.className), text: !item.iconOnly ? itemText : undefined, menuProps: item.subMenuProps, onClick: _this._onButtonClick(item) });
            if (item.iconOnly && itemText !== undefined) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Tooltip__WEBPACK_IMPORTED_MODULE_7__["TooltipHost"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ content: itemText }, item.tooltipHostProps), _this._commandButton(item, commandButtonProps)));
            }
            return _this._commandButton(item, commandButtonProps);
        };
        _this._commandButton = function (item, props) {
            var ButtonAs = _this.props.buttonAs;
            var CommandBarButtonAs = item.commandBarButtonAs;
            var DefaultButtonAs = _Button__WEBPACK_IMPORTED_MODULE_6__["CommandBarButton"];
            // The prop types between these three possible implementations overlap enough that a force-cast is safe.
            var Type = ButtonAs || CommandBarButtonAs || DefaultButtonAs;
            // Always pass the default implementation to the override so it may be composed.
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Type, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { defaultRender: DefaultButtonAs }));
        };
        _this._onRenderOverflowButton = function (overflowItems) {
            var _a = _this.props, _b = _a.overflowButtonAs, OverflowButtonType = _b === void 0 ? _Button__WEBPACK_IMPORTED_MODULE_6__["CommandBarButton"] : _b, _c = _a.overflowButtonProps // assure that props is not empty
            , overflowButtonProps = _c === void 0 ? {} : _c // assure that props is not empty
            ;
            var combinedOverflowItems = (overflowButtonProps.menuProps ? overflowButtonProps.menuProps.items : []).concat(overflowItems);
            var overflowProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowButtonProps, { styles: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ menuIcon: { fontSize: '17px' } }, overflowButtonProps.styles), className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-CommandBar-overflowButton', overflowButtonProps.className), menuProps: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowButtonProps.menuProps, { items: combinedOverflowItems }), menuIconProps: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: 'More' }, overflowButtonProps.menuIconProps) });
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](OverflowButtonType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowProps));
        };
        _this._onReduceData = function (data) {
            var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataReduced = _a.onDataReduced;
            var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;
            // Use first item if shiftOnReduce, otherwise use last item
            var movedItem = primaryItems[shiftOnReduce ? 0 : primaryItems.length - 1];
            if (movedItem !== undefined) {
                movedItem.renderedInOverflow = true;
                overflowItems = [movedItem].concat(overflowItems);
                primaryItems = shiftOnReduce ? primaryItems.slice(1) : primaryItems.slice(0, -1);
                var newData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, data, { primaryItems: primaryItems, overflowItems: overflowItems });
                cacheKey = _this._computeCacheKey(newData);
                if (onDataReduced) {
                    onDataReduced(movedItem);
                }
                newData.cacheKey = cacheKey;
                return newData;
            }
            return undefined;
        };
        _this._onGrowData = function (data) {
            var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataGrown = _a.onDataGrown;
            var minimumOverflowItems = data.minimumOverflowItems;
            var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;
            var movedItem = overflowItems[0];
            // Make sure that moved item exists and is not one of the original overflow items
            if (movedItem !== undefined && overflowItems.length > minimumOverflowItems) {
                movedItem.renderedInOverflow = false;
                overflowItems = overflowItems.slice(1);
                // if shiftOnReduce, movedItem goes first, otherwise, last.
                primaryItems = shiftOnReduce ? [movedItem].concat(primaryItems) : primaryItems.concat([movedItem]);
                var newData = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, data, { primaryItems: primaryItems, overflowItems: overflowItems });
                cacheKey = _this._computeCacheKey(newData);
                if (onDataGrown) {
                    onDataGrown(movedItem);
                }
                newData.cacheKey = cacheKey;
                return newData;
            }
            return undefined;
        };
        return _this;
    }
    CommandBarBase.prototype.render = function () {
        var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, farItems = _a.farItems, styles = _a.styles, theme = _a.theme, dataDidRender = _a.dataDidRender, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c;
        var commandBarData = {
            primaryItems: items.slice(),
            overflowItems: overflowItems.slice(),
            minimumOverflowItems: overflowItems.slice().length,
            farItems: farItems,
            cacheKey: ''
        };
        this._classNames = getClassNames(styles, { theme: theme });
        // ResizeGroup will render these attributes to the root <div>.
        // TODO We may need to elevate classNames from <FocusZone> into <ResizeGroup> ?
        var nativeProps = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_8__["getNativeProps"])(this.props, _uifabric_utilities__WEBPACK_IMPORTED_MODULE_8__["divProperties"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ResizeGroup__WEBPACK_IMPORTED_MODULE_4__["ResizeGroup"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { componentRef: this._resizeGroup, data: commandBarData, onReduceData: onReduceData, onGrowData: onGrowData, onRenderData: this._onRenderData, dataDidRender: dataDidRender })));
    };
    CommandBarBase.prototype.focus = function () {
        var overflowSet = this._overflowSet.current;
        overflowSet && overflowSet.focus();
    };
    CommandBarBase.prototype.remeasure = function () {
        this._resizeGroup.current && this._resizeGroup.current.remeasure();
    };
    CommandBarBase.prototype._onButtonClick = function (item) {
        return function (ev) {
            // inactive is deprecated. remove check in 7.0
            if (item.inactive) {
                return;
            }
            if (item.onClick) {
                item.onClick(ev, item);
            }
        };
    };
    CommandBarBase.prototype._computeCacheKey = function (data) {
        var primaryItems = data.primaryItems, _a = data.farItems, farItems = _a === void 0 ? [] : _a, overflowItems = data.overflowItems;
        var returnKey = function (acc, current) {
            var _a = current.cacheKey, cacheKey = _a === void 0 ? current.key : _a;
            return acc + cacheKey;
        };
        var primaryKey = primaryItems.reduce(returnKey, '');
        var farKey = farItems.reduce(returnKey, '');
        var overflowKey = !!overflowItems.length ? 'overflow' : '';
        return [primaryKey, farKey, overflowKey].join(' ');
    };
    CommandBarBase.defaultProps = {
        items: [],
        overflowItems: []
    };
    return CommandBarBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/CommandBar/CommandBar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBar", function() { return CommandBar; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _CommandBar_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/CommandBar/CommandBar.base.js");
/* harmony import */ var _CommandBar_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/CommandBar/CommandBar.styles.js");



// Create a CommandBar variant which uses these default styles and this styled subcomponent.
var CommandBar = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_CommandBar_base__WEBPACK_IMPORTED_MODULE_1__["CommandBarBase"], _CommandBar_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'CommandBar'
});


/***/ }),

/***/ "./lib/components/CommandBar/CommandBar.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var COMMAND_BAR_HEIGHT = 44;
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var palette = theme.palette;
    return {
        root: [
            theme.fonts.medium,
            'ms-CommandBar',
            {
                display: 'flex',
                backgroundColor: palette.white,
                padding: '0 14px 0 24px',
                height: COMMAND_BAR_HEIGHT
            },
            className
        ],
        primarySet: [
            'ms-CommandBar-primaryCommand',
            {
                flexGrow: '1',
                display: 'flex',
                alignItems: 'stretch'
            }
        ],
        secondarySet: [
            'ms-CommandBar-secondaryCommand',
            {
                flexShrink: '0',
                display: 'flex',
                alignItems: 'stretch'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/CommandBar/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _CommandBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/CommandBar/CommandBar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBar", function() { return _CommandBar__WEBPACK_IMPORTED_MODULE_0__["CommandBar"]; });

/* harmony import */ var _CommandBar_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/CommandBar/CommandBar.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarBase", function() { return _CommandBar_base__WEBPACK_IMPORTED_MODULE_1__["CommandBarBase"]; });





/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSubmenuItems", function() { return getSubmenuItems; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canAnyMenuItemsCheck", function() { return canAnyMenuItemsCheck; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuBase", function() { return ContextualMenuBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.types.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/contextualMenu/index.js");
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.js");
/* harmony import */ var _ContextualMenuItemWrapper_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/index.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.classNames.js");














var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["classNamesFunction"])({
    disableCaching: true
});
var getContextualMenuItemClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["classNamesFunction"])({
    disableCaching: true
});
function getSubmenuItems(item) {
    return item.subMenuProps ? item.subMenuProps.items : item.items;
}
/**
 * Returns true if a list of menu items can contain a checkbox
 */
function canAnyMenuItemsCheck(items) {
    return items.some(function (item) {
        if (item.canCheck) {
            return true;
        }
        // If the item is a section, check if any of the items in the section can check.
        if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {
            return true;
        }
        return false;
    });
}
var NavigationIdleDelay = 250 /* ms */;
var ContextualMenuBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuBase, _super);
    function ContextualMenuBase(props) {
        var _this = _super.call(this, props) || this;
        _this._mounted = false;
        _this.dismiss = function (ev, dismissAll) {
            var onDismiss = _this.props.onDismiss;
            if (onDismiss) {
                onDismiss(ev, dismissAll);
            }
        };
        _this._onRenderMenuList = function (menuListProps, defaultRender) {
            var indexCorrection = 0;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ul", { className: _this._classNames.list, onKeyDown: _this._onKeyDown, onKeyUp: _this._onKeyUp, role: "menu" }, menuListProps.items.map(function (item, index) {
                var menuItem = _this._renderMenuItem(item, index, indexCorrection, menuListProps.totalItemCount, menuListProps.hasCheckmarks, menuListProps.hasIcons);
                if (item.itemType !== _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Divider && item.itemType !== _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Header) {
                    var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;
                    indexCorrection += indexIncrease;
                }
                return menuItem;
            })));
        };
        _this._onKeyDown = function (ev) {
            // Take note if we are processing an alt (option) or meta (command) keydown.
            // See comment in _shouldHandleKeyUp for reasoning.
            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);
            // On Mac, pressing escape dismisses all levels of native context menus
            var dismissAllMenus = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].escape && (Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["isMac"])() || Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["isIOS"])());
            return _this._keyHandler(ev, _this._shouldHandleKeyDown, dismissAllMenus);
        };
        _this._shouldHandleKeyDown = function (ev) {
            return ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].escape || _this._shouldCloseSubMenu(ev) || (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].up && (ev.altKey || ev.metaKey));
        };
        _this._onMenuFocusCapture = function (ev) {
            if (_this.props.delayUpdateFocusOnHover) {
                _this._shouldUpdateFocusOnMouseEvent = true;
            }
        };
        _this._onKeyUp = function (ev) {
            return _this._keyHandler(ev, _this._shouldHandleKeyUp, true /* dismissAllMenus */);
        };
        /**
         * We close the menu on key up only if ALL of the following are true:
         * - Most recent key down was alt or meta (command)
         * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to
         *   expand/collapse the menu)
         * - We're not on a Mac (or iOS)
         *
         * This is because on Windows, pressing alt moves focus to the application menu bar or similar,
         * closing any open context menus. There is not a similar behavior on Macs.
         */
        _this._shouldHandleKeyUp = function (ev) {
            var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && _this._isAltOrMeta(ev);
            _this._lastKeyDownWasAltOrMeta = false;
            return !!keyPressIsAltOrMetaAlone && !(Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["isIOS"])() || Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["isMac"])());
        };
        /**
         * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;
         * if so, stops event propagation and dismisses menu(s).
         * @param ev - The keyboard event.
         * @param shouldHandleKey - Returns whether we should handle this keyboard event.
         * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.
         * Only does anything if `shouldHandleKey` returns true.
         * @returns Whether the event was handled.
         */
        _this._keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {
            var handled = false;
            if (shouldHandleKey(ev)) {
                _this._isFocusingPreviousElement = true;
                _this.dismiss(ev, dismissAllMenus);
                ev.preventDefault();
                ev.stopPropagation();
                handled = true;
            }
            return handled;
        };
        /**
         * Checks if the submenu should be closed
         */
        _this._shouldCloseSubMenu = function (ev) {
            var submenuCloseKey = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getRTL"])() ? _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].right : _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].left;
            if (ev.which !== submenuCloseKey || !_this.props.isSubMenu) {
                return false;
            }
            return (_this._adjustedFocusZoneProps.direction === _FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZoneDirection"].vertical ||
                (!!_this._adjustedFocusZoneProps.checkForNoWrap && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["shouldWrapFocus"])(ev.target, 'data-no-horizontal-wrap')));
        };
        _this._onMenuKeyDown = function (ev) {
            // Mark as handled if onKeyDown returns true (for handling collapse cases)
            // or if we are attempting to expand a submenu
            var handled = _this._onKeyDown(ev);
            if (handled || !_this._host) {
                return;
            }
            // If we have a modifier key being pressed, we do not want to move focus.
            // Otherwise, handle up and down keys.
            var hasModifier = !!(ev.altKey || ev.metaKey);
            var isUp = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].up;
            var isDown = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].down;
            if (!hasModifier && (isUp || isDown)) {
                var elementToFocus = isUp
                    ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getLastFocusable"])(_this._host, _this._host.lastChild, true)
                    : Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getFirstFocusable"])(_this._host, _this._host.firstChild, true);
                if (elementToFocus) {
                    elementToFocus.focus();
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        /**
         * Scroll handler for the callout to make sure the mouse events
         * for updating focus are not interacting during scroll
         */
        _this._onScroll = function () {
            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {
                _this._async.clearTimeout(_this._scrollIdleTimeoutId);
                _this._scrollIdleTimeoutId = undefined;
            }
            else {
                _this._isScrollIdle = false;
            }
            _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {
                _this._isScrollIdle = true;
            }, NavigationIdleDelay);
        };
        _this._onItemMouseEnterBase = function (item, ev, target) {
            if (_this._shouldIgnoreMouseEvent()) {
                return;
            }
            _this._updateFocusOnMouseEvent(item, ev, target);
        };
        _this._onItemMouseMoveBase = function (item, ev, target) {
            var targetElement = ev.currentTarget;
            // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)
            if (_this._shouldUpdateFocusOnMouseEvent) {
                _this._gotMouseMove = true;
            }
            else {
                return;
            }
            if (!_this._isScrollIdle ||
                _this._enterTimerId !== undefined ||
                targetElement === _this._targetWindow.document.activeElement) {
                return;
            }
            _this._updateFocusOnMouseEvent(item, ev, target);
        };
        _this._onMouseItemLeave = function (item, ev) {
            if (_this._shouldIgnoreMouseEvent()) {
                return;
            }
            if (_this._enterTimerId !== undefined) {
                _this._async.clearTimeout(_this._enterTimerId);
                _this._enterTimerId = undefined;
            }
            if (_this.state.expandedMenuItemKey !== undefined) {
                return;
            }
            /**
             * IE11 focus() method forces parents to scroll to top of element.
             * Edge and IE expose a setActive() function for focusable divs that
             * sets the page focus but does not scroll the parent element.
             */
            if (_this._host.setActive) {
                try {
                    _this._host.setActive();
                }
                catch (e) {
                    /* no-op */
                }
            }
            else {
                _this._host.focus();
            }
        };
        _this._onItemMouseDown = function (item, ev) {
            if (item.onMouseDown) {
                item.onMouseDown(item, ev);
            }
        };
        _this._onItemClick = function (item, ev) {
            _this._onItemClickBase(item, ev, ev.currentTarget);
        };
        _this._onItemClickBase = function (item, ev, target) {
            var items = getSubmenuItems(item);
            // Cancel a async menu item hover timeout action from being taken and instead
            // just trigger the click event instead.
            _this._cancelSubMenuTimer();
            if (!Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["hasSubmenu"])(item) && (!items || !items.length)) {
                // This is an item without a menu. Click it.
                _this._executeItemClick(item, ev);
            }
            else {
                if (item.key !== _this.state.expandedMenuItemKey) {
                    // This has a collapsed sub menu. Expand it.
                    _this.setState({
                        // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing
                        // "Enter" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates
                        // between a real click event and a keypress event (detail should be the number of mouse clicks).
                        // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).
                        // So we also check the pointerType property, which both Edge and IE set to "mouse" for real clicks
                        // and "" for pressing "Enter" with Narrator on.
                        expandedByMouseClick: ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse'
                    });
                    _this._onItemSubMenuExpand(item, target);
                }
            }
            ev.stopPropagation();
            ev.preventDefault();
        };
        _this._onAnchorClick = function (item, ev) {
            _this._executeItemClick(item, ev);
            ev.stopPropagation();
        };
        _this._executeItemClick = function (item, ev) {
            if (item.disabled || item.isDisabled) {
                return;
            }
            var dismiss = false;
            if (item.onClick) {
                dismiss = !!item.onClick(ev, item);
            }
            else if (_this.props.onItemClick) {
                dismiss = !!_this.props.onItemClick(ev, item);
            }
            (dismiss || !ev.defaultPrevented) && _this.dismiss(ev, true);
        };
        _this._onItemKeyDown = function (item, ev) {
            var openKey = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getRTL"])() ? _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].left : _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].right;
            if (!item.disabled &&
                (ev.which === openKey || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].enter || (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].down && (ev.altKey || ev.metaKey)))) {
                _this.setState({
                    expandedByMouseClick: false
                });
                _this._onItemSubMenuExpand(item, ev.currentTarget);
                ev.preventDefault();
            }
        };
        // Cancel a async menu item hover timeout action from being taken and instead
        // do new upcoming behavior
        _this._cancelSubMenuTimer = function () {
            if (_this._enterTimerId !== undefined) {
                _this._async.clearTimeout(_this._enterTimerId);
                _this._enterTimerId = undefined;
            }
        };
        _this._onItemSubMenuExpand = function (item, target) {
            if (_this.state.expandedMenuItemKey !== item.key) {
                if (_this.state.expandedMenuItemKey) {
                    _this._onSubMenuDismiss();
                }
                // Focus the target to ensure when we close it, we're focusing on the correct element.
                target.focus();
                _this.setState({
                    expandedMenuItemKey: item.key,
                    submenuTarget: target
                });
            }
        };
        /**
         * This function is called ASYNCHRONOUSLY, and so there is a chance it is called
         * after the component is unmounted. The _mounted property is added to prevent
         * from calling setState() after unmount. Do NOT copy this pattern in synchronous
         * code.
         */
        _this._onSubMenuDismiss = function (ev, dismissAll) {
            if (dismissAll) {
                _this.dismiss(ev, dismissAll);
            }
            else if (_this._mounted) {
                _this.setState({
                    dismissedMenuItemKey: _this.state.expandedMenuItemKey,
                    expandedMenuItemKey: undefined,
                    submenuTarget: undefined
                });
            }
        };
        _this._getSubMenuId = function (item) {
            var subMenuId = _this.state.subMenuId;
            if (item.subMenuProps && item.subMenuProps.id) {
                subMenuId = item.subMenuProps.id;
            }
            return subMenuId;
        };
        _this._onPointerAndTouchEvent = function (ev) {
            _this._cancelSubMenuTimer();
        };
        _this.state = {
            contextualMenuItems: undefined,
            subMenuId: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getId"])('ContextualMenu')
        };
        _this._warnDeprecations({
            getMenuClassNames: 'styles'
        });
        _this._isFocusingPreviousElement = false;
        _this._isScrollIdle = true;
        _this._shouldUpdateFocusOnMouseEvent = !_this.props.delayUpdateFocusOnHover;
        _this._gotMouseMove = false;
        return _this;
    }
    ContextualMenuBase.prototype.shouldComponentUpdate = function (newProps, newState) {
        if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {
            // Do not update when hidden.
            return false;
        }
        return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["shallowCompare"])(this.props, newProps) || !Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["shallowCompare"])(this.state, newState);
    };
    // tslint:disable-next-line function-name
    ContextualMenuBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {
        if (newProps.target !== this.props.target) {
            var newTarget = newProps.target;
            this._setTargetWindowAndElement(newTarget);
        }
        if (this._isHidden(newProps) !== this._isHidden(this.props)) {
            if (this._isHidden(newProps)) {
                this._onMenuClosed();
            }
            else {
                this._onMenuOpened();
                this._previousActiveElement = this._targetWindow ? this._targetWindow.document.activeElement : null;
            }
        }
        if (newProps.delayUpdateFocusOnHover !== this.props.delayUpdateFocusOnHover) {
            // update shouldUpdateFocusOnMouseEvent to follow what was passed in
            this._shouldUpdateFocusOnMouseEvent = !newProps.delayUpdateFocusOnHover;
            // If shouldUpdateFocusOnMouseEvent is false, we need to reset gotMouseMove to false
            this._gotMouseMove = this._shouldUpdateFocusOnMouseEvent && this._gotMouseMove;
        }
    };
    // Invoked once, both on the client and server, immediately before the initial rendering occurs.
    // tslint:disable-next-line function-name
    ContextualMenuBase.prototype.UNSAFE_componentWillMount = function () {
        var target = this.props.target;
        this._setTargetWindowAndElement(target);
        if (!this.props.hidden) {
            this._previousActiveElement = this._targetWindow ? this._targetWindow.document.activeElement : null;
        }
    };
    // Invoked once, only on the client (not on the server), immediately after the initial rendering occurs.
    ContextualMenuBase.prototype.componentDidMount = function () {
        if (!this.props.hidden) {
            this._onMenuOpened();
        }
        this._mounted = true;
    };
    // Invoked immediately before a component is unmounted from the DOM.
    ContextualMenuBase.prototype.componentWillUnmount = function () {
        this._tryFocusPreviousActiveElement();
        if (this.props.onMenuDismissed) {
            this.props.onMenuDismissed(this.props);
        }
        this._events.dispose();
        this._async.dispose();
        this._mounted = false;
    };
    ContextualMenuBase.prototype.render = function () {
        var _this = this;
        var isBeakVisible = this.props.isBeakVisible;
        var _a = this.props, items = _a.items, labelElementId = _a.labelElementId, id = _a.id, className = _a.className, beakWidth = _a.beakWidth, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, alignTargetEdge = _a.alignTargetEdge, gapSpace = _a.gapSpace, coverTarget = _a.coverTarget, ariaLabel = _a.ariaLabel, doNotLayer = _a.doNotLayer, target = _a.target, bounds = _a.bounds, useTargetWidth = _a.useTargetWidth, useTargetAsMinWidth = _a.useTargetAsMinWidth, directionalHintFixed = _a.directionalHintFixed, shouldFocusOnMount = _a.shouldFocusOnMount, shouldFocusOnContainer = _a.shouldFocusOnContainer, title = _a.title, styles = _a.styles, theme = _a.theme, calloutProps = _a.calloutProps, _b = _a.onRenderSubMenu, onRenderSubMenu = _b === void 0 ? this._onRenderSubMenu : _b, _c = _a.onRenderMenuList, onRenderMenuList = _c === void 0 ? this._onRenderMenuList : _c, focusZoneProps = _a.focusZoneProps, getMenuClassNames = _a.getMenuClassNames;
        this._classNames = getMenuClassNames
            ? getMenuClassNames(theme, className)
            : getClassNames(styles, {
                theme: theme,
                className: className
            });
        var hasIcons = itemsHaveIcons(items);
        function itemsHaveIcons(contextualMenuItems) {
            for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {
                var item = contextualMenuItems_1[_i];
                if (!!item.iconProps) {
                    return true;
                }
                if (item.itemType === _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Section && item.sectionProps && itemsHaveIcons(item.sectionProps.items)) {
                    return true;
                }
            }
            return false;
        }
        this._adjustedFocusZoneProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, focusZoneProps, { direction: this._getFocusZoneDirection() });
        var hasCheckmarks = canAnyMenuItemsCheck(items);
        var submenuProps = this.state.expandedMenuItemKey && this.props.hidden !== true ? this._getSubmenuProps() : null;
        isBeakVisible = isBeakVisible === undefined ? this.props.responsiveMode <= _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_7__["ResponsiveMode"].medium : isBeakVisible;
        /**
         * When useTargetWidth is true, get the width of the target element and apply it for the context menu container
         */
        var contextMenuStyle;
        var targetAsHtmlElement = this._target;
        if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {
            var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();
            var targetWidth = targetBoundingRect.width - 2 /* Accounts for 1px border */;
            if (useTargetWidth) {
                contextMenuStyle = {
                    width: targetWidth
                };
            }
            else if (useTargetAsMinWidth) {
                contextMenuStyle = {
                    minWidth: targetWidth
                };
            }
        }
        // The menu should only return if items were provided, if no items were provided then it should not appear.
        if (items && items.length > 0) {
            var totalItemCount = 0;
            for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
                var item = items_1[_i];
                if (item.itemType !== _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Divider && item.itemType !== _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Header) {
                    var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;
                    totalItemCount += itemCount;
                }
            }
            var calloutStyles = this._classNames.subComponentStyles
                ? this._classNames.subComponentStyles.callout
                : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_8__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ styles: calloutStyles }, calloutProps, { target: target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["css"])('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: this.props.onDismiss, onScroll: this._onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: this.props.hidden }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { "aria-label": ariaLabel, "aria-labelledby": labelElementId, style: contextMenuStyle, ref: function (host) { return (_this._host = host); }, id: id, className: this._classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: this._onMenuKeyDown, onKeyUp: this._onKeyUp, onFocusCapture: this._onMenuFocusCapture },
                    title && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.title },
                        " ",
                        title,
                        " "),
                    items && items.length ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this._adjustedFocusZoneProps, { className: this._classNames.root, isCircularNavigation: true, handleTabKey: _FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZoneTabbableElements"].all }), onRenderMenuList({
                        items: items,
                        totalItemCount: totalItemCount,
                        hasCheckmarks: hasCheckmarks,
                        hasIcons: hasIcons
                    }, this._onRenderMenuList))) : null,
                    submenuProps && onRenderSubMenu(submenuProps, this._onRenderSubMenu))));
        }
        else {
            return null;
        }
    };
    /**
     * Return whether the contextual menu is hidden.
     * Undefined value for hidden is equivalent to hidden being false.
     * @param props - Props for the component
     */
    ContextualMenuBase.prototype._isHidden = function (props) {
        return !!props.hidden;
    };
    ContextualMenuBase.prototype._onMenuOpened = function () {
        this._events.on(this._targetWindow, 'resize', this.dismiss);
        this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;
        this._gotMouseMove = false;
        this.props.onMenuOpened && this.props.onMenuOpened(this.props);
    };
    ContextualMenuBase.prototype._onMenuClosed = function () {
        this._events.off(this._targetWindow, 'resize', this.dismiss);
        this._tryFocusPreviousActiveElement();
        if (this.props.onMenuDismissed) {
            this.props.onMenuDismissed(this.props);
        }
        this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;
        // We need to dismiss any submenu related state properties,
        // so that when the menu is shown again, the submenu is collapsed
        this.setState({
            expandedByMouseClick: undefined,
            dismissedMenuItemKey: undefined,
            expandedMenuItemKey: undefined,
            submenuTarget: undefined
        });
    };
    ContextualMenuBase.prototype._tryFocusPreviousActiveElement = function () {
        var _this = this;
        if (this._isFocusingPreviousElement && this._previousActiveElement) {
            // This slight delay is required so that we can unwind the stack, const react try to mess with focus, and then
            // apply the correct focus. Without the setTimeout, we end up focusing the correct thing, and then React wants
            // to reset the focus back to the thing it thinks should have been focused.
            // Note: Cannot be replaced by this._async.setTimout because those will be removed by the time this is called.
            setTimeout(function () {
                _this._previousActiveElement && _this._previousActiveElement.focus();
            }, 0);
        }
    };
    /**
     * Gets the focusZoneDirection by using the arrowDirection if specified,
     * the direction specificed in the focusZoneProps, or defaults to FocusZoneDirection.vertical
     */
    ContextualMenuBase.prototype._getFocusZoneDirection = function () {
        var focusZoneProps = this.props.focusZoneProps;
        return focusZoneProps && focusZoneProps.direction !== undefined ? focusZoneProps.direction : _FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZoneDirection"].vertical;
    };
    ContextualMenuBase.prototype._onRenderSubMenu = function (subMenuProps, defaultRender) {
        throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +
            'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');
    };
    ContextualMenuBase.prototype._renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {
        var renderedItems = [];
        var iconProps = item.iconProps || { iconName: 'None' };
        var getItemClassNames = item.getItemClassNames, itemProps = item.itemProps;
        var styles = itemProps ? itemProps.styles : undefined;
        // We only send a dividerClassName when the item to be rendered is a divider. For all other cases, the default divider style is used.
        var dividerClassName = item.itemType === _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Divider ? item.className : undefined;
        var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';
        var itemClassNames;
        // IContextualMenuItem#getItemClassNames for backwards compatibility
        // otherwise uses mergeStyles for class names.
        if (getItemClassNames) {
            itemClassNames = getItemClassNames(this.props.theme, Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item), this.state.expandedMenuItemKey === item.key, !!Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["getIsChecked"])(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);
        }
        else {
            var itemStyleProps = {
                theme: this.props.theme,
                disabled: Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item),
                expanded: this.state.expandedMenuItemKey === item.key,
                checked: !!Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["getIsChecked"])(item),
                isAnchorLink: !!item.href,
                knownIcon: iconProps.iconName !== 'None',
                itemClassName: item.className,
                dividerClassName: dividerClassName,
                iconClassName: iconProps.className,
                subMenuClassName: subMenuIconClassName,
                primaryDisabled: item.primaryDisabled
            };
            var menuItemStyles = this._classNames.subComponentStyles
                ? this._classNames.subComponentStyles.menuItem
                : undefined;
            // We need to generate default styles then override if styles are provided
            // since the ContextualMenu currently handles item classNames.
            itemClassNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_11__["mergeStyleSets"])(getContextualMenuItemClassNames(_ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_12__["getItemStyles"], itemStyleProps), getContextualMenuItemClassNames(menuItemStyles, itemStyleProps), getContextualMenuItemClassNames(styles, itemStyleProps));
        }
        if (item.text === '-' || item.name === '-') {
            item.itemType = _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Divider;
        }
        switch (item.itemType) {
            case _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Divider:
                renderedItems.push(this._renderSeparator(index, itemClassNames));
                break;
            case _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Header:
                renderedItems.push(this._renderSeparator(index, itemClassNames));
                var headerItem = this._renderHeaderMenuItem(item, itemClassNames, index, hasCheckmarks, hasIcons);
                renderedItems.push(this._renderListItem(headerItem, item.key || index, itemClassNames, item.title));
                break;
            case _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Section:
                renderedItems.push(this._renderSectionItem(item, itemClassNames, index, hasCheckmarks, hasIcons));
                break;
            default:
                var menuItem = this._renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
                renderedItems.push(this._renderListItem(menuItem, item.key || index, itemClassNames, item.title));
                break;
        }
        return renderedItems;
    };
    ContextualMenuBase.prototype._renderSectionItem = function (sectionItem, menuClassNames, index, hasCheckmarks, hasIcons) {
        var _this = this;
        var sectionProps = sectionItem.sectionProps;
        if (!sectionProps) {
            return;
        }
        var headerItem;
        if (sectionProps.title) {
            var headerContextualMenuItem = {
                key: "section-" + sectionProps.title + "-title",
                itemType: _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Header,
                text: sectionProps.title
            };
            headerItem = this._renderHeaderMenuItem(headerContextualMenuItem, menuClassNames, index, hasCheckmarks, hasIcons);
        }
        if (sectionProps.items && sectionProps.items.length > 0) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { role: "presentation", key: sectionProps.key || sectionItem.key || "section-" + index },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "group" },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ul", { className: this._classNames.list },
                        sectionProps.topDivider && this._renderSeparator(index, menuClassNames, true, true),
                        headerItem && this._renderListItem(headerItem, sectionItem.key || index, menuClassNames, sectionItem.title),
                        sectionProps.items.map(function (contextualMenuItem, itemsIndex) {
                            return _this._renderMenuItem(contextualMenuItem, itemsIndex, itemsIndex, sectionProps.items.length, hasCheckmarks, hasIcons);
                        }),
                        sectionProps.bottomDivider && this._renderSeparator(index, menuClassNames, false, true)))));
        }
    };
    ContextualMenuBase.prototype._renderListItem = function (content, key, classNames, title) {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { role: "presentation", title: title, key: key, className: classNames.item }, content));
    };
    ContextualMenuBase.prototype._renderSeparator = function (index, classNames, top, fromSection) {
        if (fromSection || index > 0) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { role: "separator", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, "aria-hidden": "true" }));
        }
        return null;
    };
    ContextualMenuBase.prototype._renderNormalItem = function (item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {
        if (item.onRender) {
            return item.onRender(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), this.dismiss);
        }
        if (item.href) {
            return this._renderAnchorMenuItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
        }
        if (item.split && Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["hasSubmenu"])(item)) {
            return this._renderSplitButton(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
        }
        return this._renderButtonItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
    };
    ContextualMenuBase.prototype._renderHeaderMenuItem = function (item, classNames, index, hasCheckmarks, hasIcons) {
        var _a = this.props.contextualMenuItemAs, ChildrenRenderer = _a === void 0 ? _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_9__["ContextualMenuItem"] : _a;
        var itemProps = item.itemProps;
        var divHtmlProperties = itemProps && Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getNativeProps"])(itemProps, _Utilities__WEBPACK_IMPORTED_MODULE_5__["divProperties"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.header }, divHtmlProperties, { style: item.style }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ChildrenRenderer, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks ? this._onItemClick : undefined, hasIcons: hasIcons }, itemProps))));
    };
    ContextualMenuBase.prototype._renderAnchorMenuItem = function (item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {
        var contextualMenuItemAs = this.props.contextualMenuItemAs;
        var expandedMenuItemKey = this.state.expandedMenuItemKey;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ContextualMenuItemWrapper_index__WEBPACK_IMPORTED_MODULE_10__["ContextualMenuAnchor"], { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onAnchorClick, onItemKeyDown: this._onItemKeyDown, getSubMenuId: this._getSubMenuId, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));
    };
    ContextualMenuBase.prototype._renderButtonItem = function (item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {
        var contextualMenuItemAs = this.props.contextualMenuItemAs;
        var expandedMenuItemKey = this.state.expandedMenuItemKey;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ContextualMenuItemWrapper_index__WEBPACK_IMPORTED_MODULE_10__["ContextualMenuButton"], { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, getSubMenuId: this._getSubMenuId, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));
    };
    ContextualMenuBase.prototype._renderSplitButton = function (item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {
        var contextualMenuItemAs = this.props.contextualMenuItemAs;
        var expandedMenuItemKey = this.state.expandedMenuItemKey;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ContextualMenuItemWrapper_index__WEBPACK_IMPORTED_MODULE_10__["ContextualMenuSplitButton"], { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss, expandedMenuItemKey: expandedMenuItemKey, onTap: this._onPointerAndTouchEvent }));
    };
    /**
     * Returns true if the key for the event is alt (Mac option) or meta (Mac command).
     */
    ContextualMenuBase.prototype._isAltOrMeta = function (ev) {
        return ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].alt || ev.key === 'Meta';
    };
    ContextualMenuBase.prototype._shouldIgnoreMouseEvent = function () {
        return !this._isScrollIdle || !this._gotMouseMove;
    };
    /**
     * Handles updating focus when mouseEnter or mouseMove fire.
     * As part of updating focus, This function will also update
     * the expand/collapse state accordingly.
     */
    ContextualMenuBase.prototype._updateFocusOnMouseEvent = function (item, ev, target) {
        var _this = this;
        var targetElement = target ? target : ev.currentTarget;
        var _a = this.props.subMenuHoverDelay, timeoutDuration = _a === void 0 ? NavigationIdleDelay : _a;
        if (item.key === this.state.expandedMenuItemKey) {
            return;
        }
        if (this._enterTimerId !== undefined) {
            this._async.clearTimeout(this._enterTimerId);
            this._enterTimerId = undefined;
        }
        // If the menu is not expanded we can update focus without any delay
        if (this.state.expandedMenuItemKey === undefined) {
            targetElement.focus();
        }
        // Delay updating expanding/dismissing the submenu
        // and only set focus if we have not already done so
        if (Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["hasSubmenu"])(item)) {
            ev.stopPropagation();
            this._enterTimerId = this._async.setTimeout(function () {
                targetElement.focus();
                _this.setState({
                    expandedByMouseClick: true
                });
                _this._onItemSubMenuExpand(item, targetElement);
                _this._enterTimerId = undefined;
            }, timeoutDuration);
        }
        else {
            this._enterTimerId = this._async.setTimeout(function () {
                _this._onSubMenuDismiss(ev);
                targetElement.focus();
                _this._enterTimerId = undefined;
            }, timeoutDuration);
        }
    };
    ContextualMenuBase.prototype._getSubmenuProps = function () {
        var _a = this.state, submenuTarget = _a.submenuTarget, expandedMenuItemKey = _a.expandedMenuItemKey;
        var item = this._findItemByKey(expandedMenuItemKey);
        var submenuProps = null;
        if (item) {
            submenuProps = {
                items: getSubmenuItems(item),
                target: submenuTarget,
                onDismiss: this._onSubMenuDismiss,
                isSubMenu: true,
                id: this.state.subMenuId,
                shouldFocusOnMount: true,
                shouldFocusOnContainer: this.state.expandedByMouseClick,
                directionalHint: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getRTL"])() ? _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_3__["DirectionalHint"].leftTopEdge : _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_3__["DirectionalHint"].rightTopEdge,
                className: this.props.className,
                gapSpace: 0,
                isBeakVisible: false
            };
            if (item.subMenuProps) {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["assign"])(submenuProps, item.subMenuProps);
            }
        }
        return submenuProps;
    };
    ContextualMenuBase.prototype._findItemByKey = function (key) {
        var items = this.props.items;
        return this._findItemByKeyFromItems(key, items);
    };
    /**
     * Returns the item that mathes a given key if any.
     * @param key - The key of the item to match
     * @param items - The items to look for the key
     */
    ContextualMenuBase.prototype._findItemByKeyFromItems = function (key, items) {
        for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
            var item = items_2[_i];
            if (item.itemType === _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"].Section && item.sectionProps) {
                var match = this._findItemByKeyFromItems(key, item.sectionProps.items);
                if (match) {
                    return match;
                }
            }
            else if (item.key && item.key === key) {
                return item;
            }
        }
    };
    ContextualMenuBase.prototype._setTargetWindowAndElement = function (target) {
        var currentElement = this._host;
        if (target) {
            if (typeof target === 'string') {
                var currentDoc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(currentElement);
                this._target = currentDoc ? currentDoc.querySelector(target) : null;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
            }
            else if (target.stopPropagation) {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(target.toElement);
                this._target = target;
            }
            else if (target.x !== undefined && target.y !== undefined) {
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
                this._target = target;
            }
            else if (target.current !== undefined) {
                this._target = target.current;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(this._target);
            }
            else {
                var targetElement = target;
                this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(targetElement);
                this._target = target;
            }
        }
        else {
            this._targetWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(currentElement);
        }
    };
    // The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.
    ContextualMenuBase.defaultProps = {
        items: [],
        shouldFocusOnMount: true,
        gapSpace: 0,
        directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_3__["DirectionalHint"].bottomAutoEdge,
        beakWidth: 16
    };
    ContextualMenuBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_7__["withResponsiveMode"]
    ], ContextualMenuBase);
    return ContextualMenuBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_5__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSplitButtonVerticalDividerClassNames", function() { return getSplitButtonVerticalDividerClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getItemClassNames", function() { return getItemClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getItemStyles", function() { return getItemStyles; });
/* harmony import */ var _Divider_VerticalDivider_classNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Divider/VerticalDivider.classNames.js");
/* harmony import */ var _ContextualMenu_cnstyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.cnstyles.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");




var CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';
var MediumScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["getScreenSelector"])(0, _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMaxMedium"]);
var getSplitButtonVerticalDividerClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (theme) {
    var _a;
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["mergeStyleSets"])(Object(_Divider_VerticalDivider_classNames__WEBPACK_IMPORTED_MODULE_0__["getDividerClassNames"])(theme), {
        wrapper: {
            position: 'absolute',
            right: 28,
            selectors: (_a = {},
                _a[MediumScreenSelector] = {
                    right: 32 // fontSize of the icon increased from 12px to 16px
                },
                _a)
        },
        divider: {
            height: 16,
            width: 1
        }
    });
});
var GlobalClassNames = {
    item: 'ms-ContextualMenu-item',
    divider: 'ms-ContextualMenu-divider',
    root: 'ms-ContextualMenu-link',
    isChecked: 'is-checked',
    isExpanded: 'is-expanded',
    isDisabled: 'is-disabled',
    linkContent: 'ms-ContextualMenu-linkContent',
    linkContentMenu: 'ms-ContextualMenu-linkContent',
    icon: 'ms-ContextualMenu-icon',
    iconColor: 'ms-ContextualMenu-iconColor',
    checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',
    subMenuIcon: 'ms-ContextualMenu-submenuIcon',
    label: 'ms-ContextualMenu-itemText',
    secondaryText: 'ms-ContextualMenu-secondaryText',
    splitMenu: 'ms-ContextualMenu-splitMenu'
};
/**
 * @deprecated To be removed in 7.0.
 * @internal
 * This is a package-internal method that has been depended on.
 * It is being kept in this form for backwards compatibility.
 * It should be cleaned up in 7.0.
 *
 * TODO: Audit perf. impact of and potentially remove memoizeFunction.
 * https://github.com/OfficeDev/office-ui-fabric-react/issues/5534
 */
var getItemClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {
    var _a, _b, _c, _d;
    var styles = Object(_ContextualMenu_cnstyles__WEBPACK_IMPORTED_MODULE_1__["getMenuItemStyles"])(theme);
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["getGlobalClassNames"])(GlobalClassNames, theme);
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["mergeStyleSets"])({
        item: [classNames.item, styles.item, itemClassName],
        divider: [classNames.divider, styles.divider, dividerClassName],
        root: [
            classNames.root,
            styles.root,
            checked && [classNames.isChecked, styles.rootChecked],
            isAnchorLink && styles.anchorLink,
            expanded && [classNames.isExpanded, styles.rootExpanded],
            disabled && [classNames.isDisabled, styles.rootDisabled],
            !disabled &&
                !expanded && [
                {
                    selectors: (_a = {
                            ':hover': styles.rootHovered,
                            ':active': styles.rootPressed
                        },
                        _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus, ." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus:hover"] = styles.rootFocused,
                        _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:hover"] = { background: 'inherit;' },
                        _a)
                }
            ],
            className
        ],
        splitPrimary: [
            styles.root,
            {
                width: "calc(100% - " + CONTEXTUAL_SPLIT_MENU_MINWIDTH + ")"
            },
            checked && ['is-checked', styles.rootChecked],
            (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],
            !(disabled || primaryDisabled) &&
                !checked && [
                {
                    selectors: (_b = {
                            ':hover': styles.rootHovered
                        },
                        _b[":hover ~ ." + classNames.splitMenu] = styles.rootHovered,
                        _b[':active'] = styles.rootPressed,
                        _b["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus, ." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus:hover"] = styles.rootFocused,
                        _b["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:hover"] = { background: 'inherit;' },
                        _b)
                }
            ]
        ],
        splitMenu: [
            classNames.splitMenu,
            styles.root,
            {
                flexBasis: '0',
                padding: '0 8px',
                minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH
            },
            expanded && ['is-expanded', styles.rootExpanded],
            disabled && ['is-disabled', styles.rootDisabled],
            !disabled &&
                !expanded && [
                {
                    selectors: (_c = {
                            ':hover': styles.rootHovered,
                            ':active': styles.rootPressed
                        },
                        _c["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus, ." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus:hover"] = styles.rootFocused,
                        _c["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:hover"] = { background: 'inherit;' },
                        _c)
                }
            ]
        ],
        anchorLink: styles.anchorLink,
        linkContent: [classNames.linkContent, styles.linkContent],
        linkContentMenu: [
            classNames.linkContentMenu,
            styles.linkContent,
            {
                justifyContent: 'center'
            }
        ],
        icon: [
            classNames.icon,
            knownIcon && styles.iconColor,
            styles.icon,
            iconClassName,
            disabled && [classNames.isDisabled, styles.iconDisabled]
        ],
        iconColor: styles.iconColor,
        checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],
        subMenuIcon: [
            classNames.subMenuIcon,
            styles.subMenuIcon,
            subMenuClassName,
            expanded && { color: theme.palette.neutralPrimary },
            disabled && [styles.iconDisabled]
        ],
        label: [classNames.label, styles.label],
        secondaryText: [classNames.secondaryText, styles.secondaryText],
        splitContainer: [
            styles.splitButtonFlexContainer,
            !disabled &&
                !checked && [
                {
                    selectors: (_d = {},
                        _d["." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus, ." + _Utilities__WEBPACK_IMPORTED_MODULE_3__["IsFocusVisibleClassName"] + " &:focus:hover"] = styles.rootFocused,
                        _d)
                }
            ]
        ]
    });
});
/**
 * Wrapper function for generating ContextualMenuItem classNames which adheres to
 * the getStyles API, but invokes memoized className generator function with
 * primitive values.
 *
 * @param props the ContextualMenuItem style props used to generate its styles.
 */
var getItemStyles = function (props) {
    var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;
    return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);
};


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.cnstyles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONTEXTUAL_MENU_ITEM_HEIGHT", function() { return CONTEXTUAL_MENU_ITEM_HEIGHT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMenuItemStyles", function() { return getMenuItemStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;
var MediumScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"])(0, _Styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxMedium"]);
var getItemHighContrastStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function () {
    var _a;
    return {
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                backgroundColor: 'Highlight',
                borderColor: 'Highlight',
                color: 'HighlightText',
                MsHighContrastAdjust: 'none'
            },
            _a)
    };
});
var getMenuItemStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (theme) {
    var _a, _b, _c, _d, _e, _f, _g;
    var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;
    var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;
    var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;
    var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;
    var ContextualMenuItemDividerColor = semanticColors.bodyDivider;
    var menuItemStyles = {
        item: [
            fonts.medium,
            {
                color: semanticColors.bodyText,
                position: 'relative',
                boxSizing: 'border-box'
            }
        ],
        divider: {
            display: 'block',
            height: '1px',
            backgroundColor: ContextualMenuItemDividerColor,
            position: 'relative'
        },
        root: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme),
            fonts.medium,
            {
                color: semanticColors.bodyText,
                backgroundColor: 'transparent',
                border: 'none',
                width: '100%',
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,
                display: 'block',
                cursor: 'pointer',
                padding: '0px 8px 0 4px',
                textAlign: 'left'
            }
        ],
        rootDisabled: {
            color: semanticColors.disabledBodyText,
            cursor: 'default',
            pointerEvents: 'none',
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    color: 'GrayText',
                    opacity: 1
                },
                _a)
        },
        rootHovered: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: ContextualMenuItemBackgroundHoverColor, color: ContextualMenuItemTextHoverColor, selectors: {
                '.ms-ContextualMenu-icon': {
                    color: palette.themeDarkAlt
                },
                '.ms-ContextualMenu-submenuIcon': {
                    color: palette.neutralPrimary
                }
            } }, getItemHighContrastStyles()),
        rootFocused: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: palette.white }, getItemHighContrastStyles()),
        rootChecked: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ selectors: {
                '.ms-ContextualMenu-checkmarkIcon': {
                    color: palette.neutralPrimary
                }
            } }, getItemHighContrastStyles()),
        rootPressed: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: ContextualMenuItemBackgroundSelectedColor, selectors: {
                '.ms-ContextualMenu-icon': {
                    color: palette.themeDark
                },
                '.ms-ContextualMenu-submenuIcon': {
                    color: palette.neutralPrimary
                }
            } }, getItemHighContrastStyles()),
        rootExpanded: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ backgroundColor: ContextualMenuItemBackgroundSelectedColor, color: semanticColors.bodyTextChecked }, getItemHighContrastStyles()),
        linkContent: {
            whiteSpace: 'nowrap',
            height: 'inherit',
            display: 'flex',
            alignItems: 'center',
            maxWidth: '100%'
        },
        anchorLink: {
            padding: '0px 8px 0 4px',
            textRendering: 'auto',
            color: 'inherit',
            letterSpacing: 'normal',
            wordSpacing: 'normal',
            textTransform: 'none',
            textIndent: '0px',
            textShadow: 'none',
            textDecoration: 'none',
            boxSizing: 'border-box'
        },
        label: {
            margin: '0 4px',
            verticalAlign: 'middle',
            display: 'inline-block',
            flexGrow: '1',
            textOverflow: 'ellipsis',
            overflow: 'hidden',
            whiteSpace: 'nowrap'
        },
        secondaryText: {
            color: theme.palette.neutralSecondary,
            paddingLeft: '20px',
            textAlign: 'right'
        },
        icon: {
            display: 'inline-block',
            minHeight: '1px',
            maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,
            fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].medium,
            width: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].medium,
            margin: '0 4px',
            verticalAlign: 'middle',
            flexShrink: '0',
            selectors: (_b = {},
                _b[MediumScreenSelector] = {
                    fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].large,
                    width: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].large
                },
                _b)
        },
        iconColor: {
            color: semanticColors.menuIcon,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    color: 'inherit'
                },
                _c['$root:hover &'] = {
                    selectors: (_d = {},
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                            color: 'HighlightText'
                        },
                        _d)
                },
                _c['$root:focus &'] = {
                    selectors: (_e = {},
                        _e[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                            color: 'HighlightText'
                        },
                        _e)
                },
                _c)
        },
        iconDisabled: {
            color: semanticColors.disabledBodyText
        },
        checkmarkIcon: {
            color: semanticColors.bodySubtext,
            selectors: (_f = {},
                _f[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    color: 'HighlightText'
                },
                _f)
        },
        subMenuIcon: {
            height: CONTEXTUAL_MENU_ITEM_HEIGHT,
            lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,
            color: palette.neutralSecondary,
            textAlign: 'center',
            display: 'inline-block',
            verticalAlign: 'middle',
            flexShrink: '0',
            fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].small,
            selectors: (_g = {
                    ':hover': {
                        color: palette.neutralPrimary
                    },
                    ':active': {
                        color: palette.neutralPrimary
                    }
                },
                _g[MediumScreenSelector] = {
                    fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].medium // 16px
                },
                _g)
        },
        splitButtonFlexContainer: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme),
            {
                display: 'flex',
                height: CONTEXTUAL_MENU_ITEM_HEIGHT,
                flexWrap: 'nowrap',
                justifyContent: 'center',
                alignItems: 'flex-start'
            }
        ]
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["concatStyleSets"])(menuItemStyles);
});


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenu", function() { return ContextualMenu; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenu_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.base.js");
/* harmony import */ var _ContextualMenu_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.styles.js");





// This is to prevent cyclic import with ContextualMenu.base.tsx.
var LocalContextualMenu;
function onRenderSubMenu(subMenuProps) {
    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](LocalContextualMenu, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, subMenuProps));
}
LocalContextualMenu = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(_ContextualMenu_base__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuBase"], _ContextualMenu_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"], function () {
    return {
        onRenderSubMenu: onRenderSubMenu
    };
}, { scope: 'ContextualMenu' });
/**
 * ContextualMenu description
 */
var ContextualMenu = LocalContextualMenu;


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _ContextualMenu_cnstyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.cnstyles.js");


var GlobalClassNames = {
    root: 'ms-ContextualMenu',
    container: 'ms-ContextualMenu-container',
    list: 'ms-ContextualMenu-list',
    header: 'ms-ContextualMenu-header',
    title: 'ms-ContextualMenu-title',
    isopen: 'is-open'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var palette = theme.palette, fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;
    return {
        root: [
            theme.fonts.medium,
            classNames.root,
            classNames.isopen,
            {
                backgroundColor: semanticColors.bodyBackground,
                minWidth: '180px'
            },
            className
        ],
        container: [
            classNames.container,
            {
                selectors: {
                    ':focus': { outline: 0 }
                }
            }
        ],
        list: [
            classNames.list,
            classNames.isopen,
            {
                listStyleType: 'none',
                margin: '0',
                padding: '0'
            }
        ],
        header: [
            classNames.header,
            fonts.small,
            {
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                color: semanticColors.menuHeader,
                background: 'none',
                backgroundColor: 'transparent',
                border: 'none',
                height: _ContextualMenu_cnstyles__WEBPACK_IMPORTED_MODULE_1__["CONTEXTUAL_MENU_ITEM_HEIGHT"],
                lineHeight: _ContextualMenu_cnstyles__WEBPACK_IMPORTED_MODULE_1__["CONTEXTUAL_MENU_ITEM_HEIGHT"],
                cursor: 'default',
                padding: '0px 6px',
                userSelect: 'none',
                textAlign: 'left'
            }
        ],
        title: [
            classNames.title,
            {
                fontSize: fonts.mediumPlus.fontSize,
                paddingRight: '14px',
                paddingLeft: '14px',
                paddingBottom: '5px',
                paddingTop: '5px',
                backgroundColor: palette.neutralLight
            }
        ],
        subComponentStyles: {
            callout: {
                root: {
                    boxShadow: effects.elevation8
                }
            },
            menuItem: {}
        }
    };
};


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenu.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemType", function() { return ContextualMenuItemType; });
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });


/**
 * {@docCategory ContextualMenu}
 */
var ContextualMenuItemType;
(function (ContextualMenuItemType) {
    ContextualMenuItemType[ContextualMenuItemType["Normal"] = 0] = "Normal";
    ContextualMenuItemType[ContextualMenuItemType["Divider"] = 1] = "Divider";
    ContextualMenuItemType[ContextualMenuItemType["Header"] = 2] = "Header";
    ContextualMenuItemType[ContextualMenuItemType["Section"] = 3] = "Section";
})(ContextualMenuItemType || (ContextualMenuItemType = {}));


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItem.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemBase", function() { return ContextualMenuItemBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/contextualMenu/index.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Icon.js");





var renderItemIcon = function (props) {
    var item = props.item, hasIcons = props.hasIcons, classNames = props.classNames;
    var iconProps = item.iconProps;
    if (!hasIcons) {
        return null;
    }
    if (item.onRenderIcon) {
        return item.onRenderIcon(props);
    }
    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconProps, { className: classNames.icon }));
};
var renderCheckMarkIcon = function (_a) {
    var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;
    var isItemChecked = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_2__["getIsChecked"])(item);
    if (onCheckmarkClick) {
        // Ensures that the item is passed as the first argument to the checkmark click callback.
        var onClick = function (e) { return onCheckmarkClick(item, e); };
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], { iconName: isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, onClick: onClick });
    }
    return null;
};
var renderItemName = function (_a) {
    var item = _a.item, classNames = _a.classNames;
    if (item.text || item.name) {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.label }, item.text || item.name);
    }
    return null;
};
var renderSecondaryText = function (_a) {
    var item = _a.item, classNames = _a.classNames;
    if (item.secondaryText) {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.secondaryText }, item.secondaryText);
    }
    return null;
};
var renderSubMenuIcon = function (_a) {
    var item = _a.item, classNames = _a.classNames;
    if (Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_2__["hasSubmenu"])(item)) {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon }));
    }
    return null;
};
var ContextualMenuItemBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuItemBase, _super);
    function ContextualMenuItemBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.openSubMenu = function () {
            var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;
            if (getSubmenuTarget) {
                var submenuTarget = getSubmenuTarget();
                if (Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_2__["hasSubmenu"])(item) && openSubMenu && submenuTarget) {
                    openSubMenu(item, submenuTarget);
                }
            }
        };
        _this.dismissSubMenu = function () {
            var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;
            if (Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_2__["hasSubmenu"])(item) && dismissSubMenu) {
                dismissSubMenu();
            }
        };
        _this.dismissMenu = function (dismissAll) {
            var dismissMenu = _this.props.dismissMenu;
            if (dismissMenu) {
                dismissMenu(undefined /* ev */, dismissAll);
            }
        };
        return _this;
    }
    ContextualMenuItemBase.prototype.render = function () {
        var _a = this.props, item = _a.item, classNames = _a.classNames;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: item.split ? classNames.linkContentMenu : classNames.linkContent },
            renderCheckMarkIcon(this.props),
            renderItemIcon(this.props),
            renderItemName(this.props),
            renderSecondaryText(this.props),
            renderSubMenuIcon(this.props)));
    };
    return ContextualMenuItemBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItem", function() { return ContextualMenuItem; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenuItem_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.base.js");
/* harmony import */ var _ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.classNames.js");



/**
 * ContextualMenuItem description
 */
var ContextualMenuItem = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ContextualMenuItem_base__WEBPACK_IMPORTED_MODULE_1__["ContextualMenuItemBase"], _ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_2__["getItemStyles"], undefined, { scope: 'ContextualMenuItem' });


/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuAnchor", function() { return ContextualMenuAnchor; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/KeytipData.js");
/* harmony import */ var _utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/contextualMenu/index.js");
/* harmony import */ var _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.js");







var ContextualMenuAnchor = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuAnchor, _super);
    function ContextualMenuAnchor() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._anchor = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._getMemoizedMenuButtonKeytipProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (keytipProps) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps, { hasMenu: true });
        });
        _this._getSubmenuTarget = function () {
            return _this._anchor.current ? _this._anchor.current : undefined;
        };
        _this._onItemClick = function (ev) {
            var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;
            if (onItemClick) {
                onItemClick(item, ev);
            }
        };
        return _this;
    }
    ContextualMenuAnchor.prototype.render = function () {
        var _this = this;
        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_6__["ContextualMenuItem"] : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;
        var anchorRel = item.rel;
        if (item.target && item.target.toLowerCase() === '_blank') {
            anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking
        }
        var subMenuId = this._getSubMenuId(item);
        var itemHasSubmenu = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["hasSubmenu"])(item);
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(item, _Utilities__WEBPACK_IMPORTED_MODULE_2__["anchorProperties"]);
        var disabled = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["isItemDisabled"])(item);
        var itemProps = item.itemProps;
        var keytipProps = item.keytipProps;
        if (keytipProps && itemHasSubmenu) {
            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_4__["KeytipData"], { keytipProps: item.keytipProps, ariaDescribedBy: nativeProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("a", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: "menuitem", "aria-owns": item.key === expandedMenuItemKey ? subMenuId : undefined, "aria-haspopup": itemHasSubmenu || undefined, "aria-expanded": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, "aria-posinset": focusableElementIndex + 1, "aria-setsize": totalItemCount, "aria-disabled": Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["isItemDisabled"])(item), style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ChildrenRenderer, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)))); })));
    };
    return ContextualMenuAnchor;
}(_ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItemWrapper"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuButton", function() { return ContextualMenuButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/KeytipData.js");
/* harmony import */ var _utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/contextualMenu/index.js");
/* harmony import */ var _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.js");







var ContextualMenuButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuButton, _super);
    function ContextualMenuButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._btn = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._getMemoizedMenuButtonKeytipProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (keytipProps) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps, { hasMenu: true });
        });
        _this._getSubmenuTarget = function () {
            return _this._btn.current ? _this._btn.current : undefined;
        };
        return _this;
    }
    ContextualMenuButton.prototype.render = function () {
        var _this = this;
        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_6__["ContextualMenuItem"] : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;
        var subMenuId = this._getSubMenuId(item);
        var isChecked = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["getIsChecked"])(item);
        var canCheck = isChecked !== null;
        var defaultRole = canCheck ? 'menuitemcheckbox' : 'menuitem';
        var itemHasSubmenu = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["hasSubmenu"])(item);
        var itemProps = item.itemProps, ariaLabel = item.ariaLabel;
        var buttonNativeProperties = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(item, _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"]);
        // Do not add the disabled attribute to the button so that it is focusable
        delete buttonNativeProperties.disabled;
        var itemButtonProperties = {
            className: classNames.root,
            onClick: this._onItemClick,
            onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,
            onMouseEnter: this._onItemMouseEnter,
            onMouseLeave: this._onItemMouseLeave,
            onMouseDown: function (ev) { return (onItemMouseDown ? onItemMouseDown(item, ev) : undefined); },
            onMouseMove: this._onItemMouseMove,
            href: item.href,
            title: item.title,
            'aria-label': ariaLabel,
            'aria-haspopup': itemHasSubmenu || undefined,
            'aria-owns': item.key === expandedMenuItemKey ? subMenuId : undefined,
            'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,
            'aria-checked': canCheck ? !!isChecked : undefined,
            'aria-posinset': focusableElementIndex + 1,
            'aria-setsize': totalItemCount,
            'aria-disabled': Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["isItemDisabled"])(item),
            role: item.role || defaultRole,
            style: item.style
        };
        var keytipProps = item.keytipProps;
        if (keytipProps && itemHasSubmenu) {
            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_4__["KeytipData"], { keytipProps: keytipProps, ariaDescribedBy: buttonNativeProperties['aria-describedby'], disabled: Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_5__["isItemDisabled"])(item) }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ChildrenRenderer, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)))); }));
    };
    return ContextualMenuButton;
}(_ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItemWrapper"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemWrapper", function() { return ContextualMenuItemWrapper; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var ContextualMenuItemWrapper = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuItemWrapper, _super);
    function ContextualMenuItemWrapper() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onItemMouseEnter = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;
            if (onItemMouseEnter) {
                onItemMouseEnter(item, ev, ev.currentTarget);
            }
        };
        _this._onItemClick = function (ev) {
            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;
            if (onItemClickBase) {
                onItemClickBase(item, ev, ev.currentTarget);
            }
        };
        _this._onItemMouseLeave = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;
            if (onItemMouseLeave) {
                onItemMouseLeave(item, ev);
            }
        };
        _this._onItemKeyDown = function (ev) {
            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;
            if (onItemKeyDown) {
                onItemKeyDown(item, ev);
            }
        };
        _this._onItemMouseMove = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;
            if (onItemMouseMove) {
                onItemMouseMove(item, ev, ev.currentTarget);
            }
        };
        _this._getSubMenuId = function (item) {
            var getSubMenuId = _this.props.getSubMenuId;
            if (getSubMenuId) {
                return getSubMenuId(item);
            }
        };
        _this._getSubmenuTarget = function () {
            return undefined;
        };
        return _this;
    }
    ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {
        return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["shallowCompare"])(newProps, this.props);
    };
    return ContextualMenuItemWrapper;
}(_Utilities__WEBPACK_IMPORTED_MODULE_1__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuSplitButton", function() { return ContextualMenuSplitButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.js");
/* harmony import */ var _ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.classNames.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/KeytipData.js");
/* harmony import */ var _utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/contextualMenu/index.js");
/* harmony import */ var _Divider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Divider.js");
/* harmony import */ var _ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js");









var TouchIdleDelay = 500; /* ms */
var ContextualMenuSplitButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ContextualMenuSplitButton, _super);
    function ContextualMenuSplitButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._getMemoizedMenuButtonKeytipProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (keytipProps) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps, { hasMenu: true });
        });
        _this._onItemKeyDown = function (ev) {
            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                _this._executeItemClick(ev);
                ev.preventDefault();
                ev.stopPropagation();
            }
            else if (onItemKeyDown) {
                onItemKeyDown(item, ev);
            }
        };
        _this._getSubmenuTarget = function () {
            return _this._splitButton;
        };
        _this._onItemMouseEnterPrimary = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;
            if (onItemMouseEnter) {
                onItemMouseEnter(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);
            }
        };
        _this._onItemMouseEnterIcon = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;
            if (onItemMouseEnter) {
                onItemMouseEnter(item, ev, _this._splitButton);
            }
        };
        _this._onItemMouseMovePrimary = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;
            if (onItemMouseMove) {
                onItemMouseMove(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);
            }
        };
        _this._onItemMouseMoveIcon = function (ev) {
            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;
            if (onItemMouseMove) {
                onItemMouseMove(item, ev, _this._splitButton);
            }
        };
        _this._onIconItemClick = function (ev) {
            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;
            if (onItemClickBase) {
                onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));
            }
        };
        _this._executeItemClick = function (ev) {
            var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;
            if (item.disabled || item.isDisabled) {
                return;
            }
            if (_this._processingTouch && onItemClick) {
                return onItemClick(item, ev);
            }
            if (executeItemClick) {
                executeItemClick(item, ev);
            }
        };
        _this._onTouchStart = function (ev) {
            if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {
                _this._handleTouchAndPointerEvent(ev);
            }
        };
        _this._onPointerDown = function (ev) {
            if (ev.pointerType === 'touch') {
                _this._handleTouchAndPointerEvent(ev);
                ev.preventDefault();
                ev.stopImmediatePropagation();
            }
        };
        return _this;
    }
    ContextualMenuSplitButton.prototype.componentDidMount = function () {
        if (this._splitButton && 'onpointerdown' in this._splitButton) {
            this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);
        }
    };
    ContextualMenuSplitButton.prototype.render = function () {
        var _this = this;
        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, onItemMouseLeave = _a.onItemMouseLeave, expandedMenuItemKey = _a.expandedMenuItemKey;
        var itemHasSubmenu = Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["hasSubmenu"])(item);
        var keytipProps = item.keytipProps;
        if (keytipProps) {
            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_5__["KeytipData"], { keytipProps: keytipProps, disabled: Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item) }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { "data-ktp-target": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: 'menuitem', "aria-label": item.ariaLabel, className: classNames.splitContainer, "aria-disabled": Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item), "aria-expanded": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, "aria-haspopup": true, "aria-describedby": Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(item.ariaDescription, keytipAttributes['aria-describedby']), "aria-checked": item.isChecked || item.checked, "aria-posinset": focusableElementIndex + 1, "aria-setsize": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, "data-is-focusable": true, "aria-roledescription": item['aria-roledescription'] },
            _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),
            _this._renderSplitDivider(item),
            _this._renderSplitIconButton(item, classNames, index, keytipAttributes))); }));
    };
    ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, classNames, index, hasCheckmarks, hasIcons) {
        var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItem"] : _b, onItemClick = _a.onItemClick;
        var itemProps = {
            key: item.key,
            disabled: Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item) || item.primaryDisabled,
            name: item.name,
            text: item.text || item.name,
            className: classNames.splitPrimary,
            canCheck: item.canCheck,
            isChecked: item.isChecked,
            checked: item.checked,
            iconProps: item.iconProps,
            'data-is-focusable': false,
            'aria-hidden': true
        };
        var itemComponentProps = item.itemProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(itemProps, _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"])),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ChildrenRenderer, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "data-is-focusable": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));
    };
    ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {
        var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || _ContextualMenu_classNames__WEBPACK_IMPORTED_MODULE_4__["getSplitButtonVerticalDividerClassNames"];
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Divider__WEBPACK_IMPORTED_MODULE_7__["VerticalDivider"], { getClassNames: getDividerClassNames });
    };
    ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, index, keytipAttributes) {
        var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItem"] : _b, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;
        var itemProps = {
            onClick: this._onIconItemClick,
            disabled: Object(_utilities_contextualMenu_index__WEBPACK_IMPORTED_MODULE_6__["isItemDisabled"])(item),
            className: classNames.splitMenu,
            subMenuProps: item.subMenuProps,
            submenuIconProps: item.submenuIconProps,
            split: true,
            key: item.key
        };
        var buttonProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(itemProps, _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"]), {
            onMouseEnter: this._onItemMouseEnterIcon,
            onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,
            onMouseDown: function (ev) { return (onItemMouseDown ? onItemMouseDown(item, ev) : undefined); },
            onMouseMove: this._onItemMouseMoveIcon,
            'data-is-focusable': false,
            'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],
            'aria-hidden': true
        });
        var itemComponentProps = item.itemProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, buttonProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ChildrenRenderer, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));
    };
    ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {
        var _this = this;
        var onTap = this.props.onTap;
        if (onTap) {
            onTap(ev);
        }
        // If we already have an existing timeout from a previous touch/pointer event
        // cancel that timeout so we can set a new one.
        if (this._lastTouchTimeoutId) {
            this._async.clearTimeout(this._lastTouchTimeoutId);
            this._lastTouchTimeoutId = undefined;
        }
        this._processingTouch = true;
        this._lastTouchTimeoutId = this._async.setTimeout(function () {
            _this._processingTouch = false;
            _this._lastTouchTimeoutId = undefined;
        }, TouchIdleDelay);
    };
    return ContextualMenuSplitButton;
}(_ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_8__["ContextualMenuItemWrapper"]));



/***/ }),

/***/ "./lib/components/ContextualMenu/ContextualMenuItemWrapper/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ContextualMenuAnchor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuAnchor", function() { return _ContextualMenuAnchor__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuAnchor"]; });

/* harmony import */ var _ContextualMenuButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuButton", function() { return _ContextualMenuButton__WEBPACK_IMPORTED_MODULE_1__["ContextualMenuButton"]; });

/* harmony import */ var _ContextualMenuSplitButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuSplitButton", function() { return _ContextualMenuSplitButton__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuSplitButton"]; });

/* harmony import */ var _ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemWrapper", function() { return _ContextualMenuItemWrapper__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItemWrapper"]; });







/***/ }),

/***/ "./lib/components/ContextualMenu/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ContextualMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenu", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_0__["ContextualMenu"]; });

/* harmony import */ var _ContextualMenu_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSubmenuItems", function() { return _ContextualMenu_base__WEBPACK_IMPORTED_MODULE_1__["getSubmenuItems"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canAnyMenuItemsCheck", function() { return _ContextualMenu_base__WEBPACK_IMPORTED_MODULE_1__["canAnyMenuItemsCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuBase", function() { return _ContextualMenu_base__WEBPACK_IMPORTED_MODULE_1__["ContextualMenuBase"]; });

/* harmony import */ var _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenu.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["DirectionalHint"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemType", function() { return _ContextualMenu_types__WEBPACK_IMPORTED_MODULE_2__["ContextualMenuItemType"]; });

/* harmony import */ var _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItem", function() { return _ContextualMenuItem__WEBPACK_IMPORTED_MODULE_3__["ContextualMenuItem"]; });

/* harmony import */ var _ContextualMenuItem_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ContextualMenu/ContextualMenuItem.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemBase", function() { return _ContextualMenuItem_base__WEBPACK_IMPORTED_MODULE_4__["ContextualMenuItemBase"]; });








/***/ }),

/***/ "./lib/components/DatePicker/DatePicker.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DatePickerBase", function() { return DatePickerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Calendar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Calendar.js");
/* harmony import */ var _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/dateValues/DateValues.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/TextField.js");
/* harmony import */ var _utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/dateMath/DateMath.js");
/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/FocusTrapZone.js");










var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var DEFAULT_STRINGS = {
    months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
    goToToday: 'Go to today',
    prevMonthAriaLabel: 'Go to previous month',
    nextMonthAriaLabel: 'Go to next month',
    prevYearAriaLabel: 'Go to previous year',
    nextYearAriaLabel: 'Go to next year',
    prevYearRangeAriaLabel: 'Previous year range',
    nextYearRangeAriaLabel: 'Next year range',
    closeButtonAriaLabel: 'Close date picker',
    weekNumberFormatString: 'Week number {0}'
};
var DatePickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DatePickerBase, _super);
    function DatePickerBase(props) {
        var _this = _super.call(this, props) || this;
        _this._calendar = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._datePickerDiv = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._textField = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onSelectDate = function (date) {
            var _a = _this.props, formatDate = _a.formatDate, onSelectDate = _a.onSelectDate;
            if (_this.props.calendarProps && _this.props.calendarProps.onSelectDate) {
                _this.props.calendarProps.onSelectDate(date);
            }
            _this.setState({
                selectedDate: date,
                formattedDate: formatDate && date ? formatDate(date) : ''
            });
            if (onSelectDate) {
                onSelectDate(date);
            }
            _this._calendarDismissed();
        };
        _this._onCalloutPositioned = function () {
            var shouldFocus = true;
            // If the user has specified that the callout shouldn't use initial focus, then respect
            // that and don't attempt to set focus. That will default to true within the callout
            // so we need to check if it's undefined here.
            if (_this.props.calloutProps && _this.props.calloutProps.setInitialFocus !== undefined) {
                shouldFocus = _this.props.calloutProps.setInitialFocus;
            }
            if (_this._calendar.current && shouldFocus) {
                _this._calendar.current.focus();
            }
        };
        _this._onTextFieldFocus = function (ev) {
            if (_this.props.disableAutoFocus) {
                return;
            }
            if (!_this.props.allowTextInput) {
                if (!_this._preventFocusOpeningPicker) {
                    _this._showDatePickerPopup();
                }
                else {
                    _this._preventFocusOpeningPicker = false;
                }
            }
        };
        _this._onTextFieldBlur = function (ev) {
            _this._validateTextInput();
        };
        _this._onTextFieldChanged = function (ev, newValue) {
            var _a = _this.props, allowTextInput = _a.allowTextInput, textField = _a.textField;
            if (allowTextInput) {
                if (_this.state.isDatePickerShown) {
                    _this._dismissDatePickerPopup();
                }
                var _b = _this.props, isRequired = _b.isRequired, value = _b.value, strings = _b.strings;
                _this.setState({
                    errorMessage: isRequired && !value ? strings.isRequiredErrorMessage || ' ' : undefined,
                    formattedDate: newValue
                });
            }
            if (textField && textField.onChange) {
                textField.onChange(ev, newValue);
            }
        };
        _this._onTextFieldKeyDown = function (ev) {
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter:
                    ev.preventDefault();
                    ev.stopPropagation();
                    if (!_this.state.isDatePickerShown) {
                        _this._validateTextInput();
                        _this._showDatePickerPopup();
                    }
                    else {
                        // When DatePicker allows input date string directly,
                        // it is expected to hit another enter to close the popup
                        if (_this.props.allowTextInput) {
                            _this._dismissDatePickerPopup();
                        }
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    _this._handleEscKey(ev);
                    break;
                default:
                    break;
            }
        };
        _this._onTextFieldClick = function (ev) {
            if (!_this.props.disableAutoFocus && !_this.state.isDatePickerShown && !_this.props.disabled) {
                _this._showDatePickerPopup();
                return;
            }
            if (_this.props.allowTextInput) {
                _this._dismissDatePickerPopup();
            }
        };
        _this._onIconClick = function (ev) {
            ev.stopPropagation();
            if (!_this.state.isDatePickerShown && !_this.props.disabled) {
                _this._showDatePickerPopup();
            }
            else if (_this.props.allowTextInput) {
                _this._dismissDatePickerPopup();
            }
        };
        _this._dismissDatePickerPopup = function () {
            if (_this.state.isDatePickerShown) {
                _this.setState({
                    isDatePickerShown: false
                }, function () {
                    // setState is async, so we must call validate in a callback
                    _this._validateTextInput();
                });
            }
        };
        /**
         * Callback for closing the calendar callout
         */
        _this._calendarDismissed = function () {
            _this._preventFocusOpeningPicker = true;
            _this._dismissDatePickerPopup();
            // don't need to focus the text box, if necessary the focusTrapZone will do it
        };
        _this._handleEscKey = function (ev) {
            if (_this.state.isDatePickerShown) {
                ev.stopPropagation();
            }
            _this._calendarDismissed();
        };
        _this._validateTextInput = function () {
            var _a = _this.props, isRequired = _a.isRequired, allowTextInput = _a.allowTextInput, strings = _a.strings, parseDateFromString = _a.parseDateFromString, onSelectDate = _a.onSelectDate, formatDate = _a.formatDate, minDate = _a.minDate, maxDate = _a.maxDate;
            var inputValue = _this.state.formattedDate;
            // Do validation only if DatePicker's popup is dismissed
            if (_this.state.isDatePickerShown) {
                return;
            }
            if (allowTextInput) {
                var date = null;
                if (inputValue) {
                    // Don't parse if the selected date has the same formatted string as what we're about to parse.
                    // The formatted string might be ambiguous (ex: "1/2/3" or "New Year Eve") and the parser might
                    // not be able to come up with the exact same date.
                    if (_this.state.selectedDate && formatDate && formatDate(_this.state.selectedDate) === inputValue) {
                        return;
                    }
                    else {
                        date = parseDateFromString(inputValue);
                        // Check if date is null, or date is Invalid Date
                        if (!date || isNaN(date.getTime())) {
                            // Reset invalid input field, if formatting is available
                            if (formatDate) {
                                date = _this.state.selectedDate;
                                _this.setState({
                                    formattedDate: formatDate(date).toString()
                                });
                            }
                            _this.setState({
                                errorMessage: strings.invalidInputErrorMessage || ' '
                            });
                        }
                        else {
                            // Check against optional date boundaries
                            if (_this._isDateOutOfBounds(date, minDate, maxDate)) {
                                _this.setState({
                                    errorMessage: strings.isOutOfBoundsErrorMessage || ' '
                                });
                            }
                            else {
                                _this.setState({
                                    selectedDate: date,
                                    errorMessage: ''
                                });
                                // When formatting is available. If formatted date is valid, but is different from input, update with formatted date
                                // This occurs when an invalid date is entered twice
                                if (formatDate && formatDate(date) !== inputValue) {
                                    _this.setState({
                                        formattedDate: formatDate(date).toString()
                                    });
                                }
                            }
                        }
                    }
                }
                else {
                    // Only show error for empty inputValue if it is a required field
                    _this.setState({
                        errorMessage: isRequired ? strings.isRequiredErrorMessage || ' ' : ''
                    });
                }
                // Execute onSelectDate callback
                if (onSelectDate) {
                    // If no input date string or input date string is invalid
                    // date variable will be null, callback should expect null value for this case
                    onSelectDate(date);
                }
            }
            else if (isRequired && !inputValue) {
                // Check when DatePicker is a required field but has NO input value
                _this.setState({
                    errorMessage: strings.isRequiredErrorMessage || ' '
                });
            }
        };
        _this.state = _this._getDefaultState();
        _this._id = props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('DatePicker');
        _this._preventFocusOpeningPicker = false;
        return _this;
    }
    // tslint:disable-next-line function-name
    DatePickerBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        var formatDate = nextProps.formatDate, value = nextProps.value;
        if (Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDates"])(this.props.minDate, nextProps.minDate) &&
            Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDates"])(this.props.maxDate, nextProps.maxDate) &&
            this.props.isRequired === nextProps.isRequired &&
            Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDates"])(this.state.selectedDate, value) &&
            this.props.formatDate === formatDate) {
            // if the props we care about haven't changed, don't run validation or updates
            return;
        }
        this._setErrorMessage(true, nextProps);
        this._id = nextProps.id || this._id;
        // Issue# 1274: Check if the date value changed from old value, i.e., if indeed a new date is being
        // passed in or if the formatting function was modified. We only update the selected date if either of these
        // had a legit change. Note tha the bug will still repro when only the formatDate was passed in props and this
        // is the result of the onSelectDate callback, but this should be a rare scenario.
        var oldValue = this.state.selectedDate;
        if (!Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDates"])(oldValue, value) || this.props.formatDate !== formatDate) {
            this.setState({
                selectedDate: value || undefined,
                formattedDate: formatDate && value ? formatDate(value) : ''
            });
        }
    };
    DatePickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        if (prevState.isDatePickerShown && !this.state.isDatePickerShown) {
            // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss
            if (this.props.onAfterMenuDismiss) {
                this.props.onAfterMenuDismiss();
            }
        }
    };
    DatePickerBase.prototype.render = function () {
        var _a = this.props, firstDayOfWeek = _a.firstDayOfWeek, strings = _a.strings, label = _a.label, theme = _a.theme, className = _a.className, styles = _a.styles, initialPickerDate = _a.initialPickerDate, isRequired = _a.isRequired, disabled = _a.disabled, ariaLabel = _a.ariaLabel, pickerAriaLabel = _a.pickerAriaLabel, placeholder = _a.placeholder, allowTextInput = _a.allowTextInput, borderless = _a.borderless, minDate = _a.minDate, maxDate = _a.maxDate, showCloseButton = _a.showCloseButton, calendarProps = _a.calendarProps, calloutProps = _a.calloutProps, textFieldProps = _a.textField, underlined = _a.underlined, allFocusable = _a.allFocusable, _b = _a.calendarAs, CalendarType = _b === void 0 ? _Calendar__WEBPACK_IMPORTED_MODULE_3__["Calendar"] : _b, tabIndex = _a.tabIndex;
        var _c = this.state, isDatePickerShown = _c.isDatePickerShown, formattedDate = _c.formattedDate, selectedDate = _c.selectedDate;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            disabled: disabled,
            label: !!label,
            isDatePickerShown: isDatePickerShown
        });
        var calloutId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('DatePicker-Callout');
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"], ['value']);
        var iconProps = textFieldProps && textFieldProps.iconProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { className: classNames.root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._datePickerDiv, "aria-haspopup": "true", "aria-owns": isDatePickerShown ? calloutId : undefined },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TextField__WEBPACK_IMPORTED_MODULE_7__["TextField"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ role: "combobox", label: label, "aria-expanded": isDatePickerShown, ariaLabel: ariaLabel, "aria-controls": isDatePickerShown ? calloutId : undefined, required: isRequired, disabled: disabled, errorMessage: this._getErrorMessage(), placeholder: placeholder, borderless: borderless, value: formattedDate, componentRef: this._textField, underlined: underlined, tabIndex: tabIndex, readOnly: !allowTextInput }, textFieldProps, { id: this._id + '-label', className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.textField, textFieldProps && textFieldProps.className), iconProps: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: 'Calendar' }, iconProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.icon, iconProps && iconProps.className), onClick: this._onIconClick }), onKeyDown: this._onTextFieldKeyDown, onFocus: this._onTextFieldFocus, onBlur: this._onTextFieldBlur, onClick: this._onTextFieldClick, onChange: this._onTextFieldChanged }))),
            isDatePickerShown && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_5__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ id: calloutId, role: "dialog", ariaLabel: pickerAriaLabel, isBeakVisible: false, gapSpace: 0, doNotLayer: false, target: this._datePickerDiv.current, directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"].bottomLeftEdge }, calloutProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.callout, calloutProps && calloutProps.className), onDismiss: this._calendarDismissed, onPositioned: this._onCalloutPositioned }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone__WEBPACK_IMPORTED_MODULE_9__["FocusTrapZone"], { isClickableOutsideFocusTrap: true, disableFirstFocus: this.props.disableAutoFocus, forceFocusInsideTrap: false },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](CalendarType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calendarProps, { onSelectDate: this._onSelectDate, onDismiss: this._calendarDismissed, isMonthPickerVisible: this.props.isMonthPickerVisible, showMonthPickerAsOverlay: this.props.showMonthPickerAsOverlay, today: this.props.today, value: selectedDate || initialPickerDate, firstDayOfWeek: firstDayOfWeek, strings: strings, highlightCurrentMonth: this.props.highlightCurrentMonth, highlightSelectedMonth: this.props.highlightSelectedMonth, showWeekNumbers: this.props.showWeekNumbers, firstWeekOfYear: this.props.firstWeekOfYear, showGoToToday: this.props.showGoToToday, dateTimeFormatter: this.props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: this._calendar, showCloseButton: showCloseButton, allFocusable: allFocusable })))))));
    };
    DatePickerBase.prototype.focus = function () {
        if (this._textField.current) {
            this._textField.current.focus();
        }
    };
    DatePickerBase.prototype.reset = function () {
        this.setState(this._getDefaultState());
    };
    DatePickerBase.prototype._setErrorMessage = function (setState, nextProps) {
        var _a = nextProps || this.props, isRequired = _a.isRequired, strings = _a.strings, value = _a.value, minDate = _a.minDate, maxDate = _a.maxDate, initialPickerDate = _a.initialPickerDate;
        var errorMessage = !initialPickerDate && isRequired && !value ? strings.isRequiredErrorMessage || ' ' : undefined;
        if (!errorMessage && value) {
            errorMessage = this._isDateOutOfBounds(value, minDate, maxDate) ? strings.isOutOfBoundsErrorMessage || ' ' : undefined;
        }
        if (setState) {
            this.setState({
                errorMessage: errorMessage
            });
        }
        return errorMessage;
    };
    DatePickerBase.prototype._showDatePickerPopup = function () {
        if (!this.state.isDatePickerShown) {
            this._preventFocusOpeningPicker = true;
            this.setState({
                isDatePickerShown: true
            });
        }
    };
    DatePickerBase.prototype._getDefaultState = function (props) {
        if (props === void 0) { props = this.props; }
        return {
            selectedDate: props.value || undefined,
            formattedDate: props.formatDate && props.value ? props.formatDate(props.value) : '',
            isDatePickerShown: false,
            errorMessage: this._setErrorMessage(false)
        };
    };
    DatePickerBase.prototype._isDateOutOfBounds = function (date, minDate, maxDate) {
        return (!!minDate && Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDatePart"])(minDate, date) > 0) || (!!maxDate && Object(_utilities_dateMath_DateMath__WEBPACK_IMPORTED_MODULE_8__["compareDatePart"])(maxDate, date) < 0);
    };
    DatePickerBase.prototype._getErrorMessage = function () {
        if (this.state.isDatePickerShown) {
            return undefined;
        }
        return this.state.errorMessage;
    };
    DatePickerBase.defaultProps = {
        allowTextInput: false,
        formatDate: function (date) {
            if (date) {
                return date.toDateString();
            }
            return '';
        },
        parseDateFromString: function (dateStr) {
            var date = Date.parse(dateStr);
            if (date) {
                return new Date(date);
            }
            return null;
        },
        firstDayOfWeek: _Calendar__WEBPACK_IMPORTED_MODULE_3__["DayOfWeek"].Sunday,
        initialPickerDate: new Date(),
        isRequired: false,
        isMonthPickerVisible: true,
        showMonthPickerAsOverlay: false,
        strings: DEFAULT_STRINGS,
        highlightCurrentMonth: false,
        highlightSelectedMonth: false,
        borderless: false,
        pickerAriaLabel: 'Calendar',
        showWeekNumbers: false,
        firstWeekOfYear: _utilities_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_4__["FirstWeekOfYear"].FirstDay,
        showGoToToday: true,
        dateTimeFormatter: undefined,
        showCloseButton: false,
        underlined: false,
        allFocusable: false
    };
    return DatePickerBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DatePicker/DatePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return DatePicker; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DatePicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DatePicker/DatePicker.base.js");
/* harmony import */ var _DatePicker_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DatePicker/DatePicker.styles.js");



/**
 * DatePicker description
 */
var DatePicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DatePicker_base__WEBPACK_IMPORTED_MODULE_1__["DatePickerBase"], _DatePicker_styles__WEBPACK_IMPORTED_MODULE_2__["styles"], undefined, {
    scope: 'DatePicker'
});


/***/ }),

/***/ "./lib/components/DatePicker/DatePicker.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-DatePicker',
    callout: 'ms-DatePicker-callout',
    withLabel: 'ms-DatePicker-event--with-label',
    withoutLabel: 'ms-DatePicker-event--without-label',
    disabled: 'msDatePickerDisabled '
};
var styles = function (props) {
    var className = props.className, theme = props.theme, disabled = props.disabled, label = props.label, isDatePickerShown = props.isDatePickerShown;
    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var DatePickerIcon = {
        color: palette.neutralSecondary,
        fontSize: fonts.mediumPlus.fontSize,
        lineHeight: '18px',
        pointerEvents: 'none',
        position: 'absolute',
        right: '4px',
        padding: '5px'
    };
    return {
        root: [classNames.root, theme.fonts.medium, isDatePickerShown && 'is-open', _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"], className],
        textField: [
            {
                position: 'relative',
                selectors: {
                    '& input[readonly]': {
                        cursor: 'pointer'
                    },
                    input: {
                        selectors: {
                            '::-ms-clear': {
                                display: 'none'
                            }
                        }
                    }
                }
            },
            disabled && {
                selectors: {
                    '& input[readonly]': {
                        cursor: 'default'
                    }
                }
            }
        ],
        callout: [classNames.callout, { boxShadow: effects.elevation8 }],
        icon: [
            DatePickerIcon,
            !label && [classNames.withoutLabel, { paddingTop: '7px' }],
            label && [classNames.withLabel, { paddingBottom: '5px' }],
            !disabled && [
                classNames.disabled,
                {
                    pointerEvents: 'initial',
                    cursor: 'pointer'
                }
            ],
            disabled && {
                color: semanticColors.disabledText,
                cursor: 'default'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/DatePicker/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DatePicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DatePicker/DatePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return _DatePicker__WEBPACK_IMPORTED_MODULE_0__["DatePicker"]; });

/* harmony import */ var _DatePicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DatePicker/DatePicker.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePickerBase", function() { return _DatePicker_base__WEBPACK_IMPORTED_MODULE_1__["DatePickerBase"]; });

/* harmony import */ var _Calendar_Calendar_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Calendar/Calendar.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _Calendar_Calendar_types__WEBPACK_IMPORTED_MODULE_2__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _Calendar_Calendar_types__WEBPACK_IMPORTED_MODULE_2__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _Calendar_Calendar_types__WEBPACK_IMPORTED_MODULE_2__["FirstWeekOfYear"]; });






/***/ }),

/***/ "./lib/components/DetailsList/DetailsColumn.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnBase", function() { return DetailsColumnBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");






var MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var TRANSITION_DURATION_DRAG = 200; // ms
var TRANSITION_DURATION_DROP = 1500; // ms
var CLASSNAME_ADD_INTERVAL = 20; // ms
/**
 * Component for rendering columns in a `DetailsList`.
 *
 * {@docCategory DetailsList}
 */
var DetailsColumnBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DetailsColumnBase, _super);
    function DetailsColumnBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);
        };
        _this._onColumnClick = function (ev) {
            var _a = _this.props, onColumnClick = _a.onColumnClick, column = _a.column;
            if (column.columnActionsMode === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].disabled) {
                return;
            }
            if (column.onColumnClick) {
                column.onColumnClick(ev, column);
            }
            if (onColumnClick) {
                onColumnClick(ev, column);
            }
        };
        _this._onDragStart = function (item, itemIndex, selectedItems, event) {
            var classNames = _this._classNames;
            if (itemIndex) {
                _this._updateHeaderDragInfo(itemIndex);
                _this._root.current.classList.add(classNames.borderWhileDragging);
                _this._async.setTimeout(function () {
                    if (_this._root.current) {
                        _this._root.current.classList.add(classNames.noBorderWhileDragging);
                    }
                }, CLASSNAME_ADD_INTERVAL);
            }
        };
        _this._onDragEnd = function (item, event) {
            var classNames = _this._classNames;
            if (event) {
                _this._updateHeaderDragInfo(-1, event);
            }
            _this._root.current.classList.remove(classNames.borderWhileDragging);
            _this._root.current.classList.remove(classNames.noBorderWhileDragging);
        };
        _this._updateHeaderDragInfo = function (itemIndex, event) {
            if (_this.props.setDraggedItemIndex) {
                _this.props.setDraggedItemIndex(itemIndex);
            }
            if (_this.props.updateDragInfo) {
                _this.props.updateDragInfo({ itemIndex: itemIndex }, event);
            }
        };
        _this._onColumnContextMenu = function (ev) {
            var _a = _this.props, onColumnContextMenu = _a.onColumnContextMenu, column = _a.column;
            if (column.onColumnContextMenu) {
                column.onColumnContextMenu(column, ev);
                ev.preventDefault();
            }
            if (onColumnContextMenu) {
                onColumnContextMenu(column, ev);
                ev.preventDefault();
            }
        };
        _this._onRootMouseDown = function (ev) {
            var isDraggable = _this.props.isDraggable;
            // Ignore anything except the primary button.
            if (isDraggable && ev.button === MOUSEDOWN_PRIMARY_BUTTON) {
                ev.stopPropagation();
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["Async"](_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["EventGroup"](_this);
        return _this;
    }
    DetailsColumnBase.prototype.render = function () {
        var _a = this.props, column = _a.column, columnIndex = _a.columnIndex, parentId = _a.parentId, isDraggable = _a.isDraggable, styles = _a.styles, theme = _a.theme, _b = _a.cellStyleProps, cellStyleProps = _b === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_5__["DEFAULT_CELL_STYLE_PROPS"] : _b, _c = _a.useFastIcons, useFastIcons = _c === void 0 ? true : _c;
        var _d = this.props.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _d === void 0 ? this._onRenderColumnHeaderTooltip : _d;
        this._classNames = getClassNames(styles, {
            theme: theme,
            headerClassName: column.headerClassName,
            iconClassName: column.iconClassName,
            isActionable: column.columnActionsMode !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].disabled,
            isEmpty: !column.name,
            isIconVisible: column.isSorted || column.isGrouped || column.isFiltered,
            isPadded: column.isPadded,
            isIconOnly: column.isIconOnly,
            cellStyleProps: cellStyleProps,
            transitionDurationDrag: TRANSITION_DURATION_DRAG,
            transitionDurationDrop: TRANSITION_DURATION_DROP
        });
        var classNames = this._classNames;
        var IconComponent = useFastIcons ? _Icon__WEBPACK_IMPORTED_MODULE_2__["FontIcon"] : _Icon__WEBPACK_IMPORTED_MODULE_2__["Icon"];
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: column.key, ref: this._root, role: 'columnheader', "aria-sort": column.isSorted ? (column.isSortedDescending ? 'descending' : 'ascending') : 'none', "aria-colindex": columnIndex, className: classNames.root, "data-is-draggable": isDraggable, draggable: isDraggable, style: {
                    width: column.calculatedWidth +
                        cellStyleProps.cellLeftPadding +
                        cellStyleProps.cellRightPadding +
                        (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0)
                }, "data-automationid": 'ColumnsHeaderColumn', "data-item-key": column.key },
                isDraggable && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { iconName: "GripperBarVertical", className: classNames.gripperBarVerticalStyle }),
                onRenderColumnHeaderTooltip({
                    hostClassName: classNames.cellTooltip,
                    id: parentId + "-" + column.key + "-tooltip",
                    setAriaDescribedBy: false,
                    content: column.columnActionsMode !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].disabled ? column.ariaLabel : '',
                    children: (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: parentId + "-" + column.key, "aria-label": column.isIconOnly ? column.name : undefined, "aria-labelledby": column.isIconOnly ? undefined : parentId + "-" + column.key + "-name", className: classNames.cellTitle, "data-is-focusable": column.columnActionsMode !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].disabled, role: column.columnActionsMode !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].disabled &&
                            (column.onColumnClick !== undefined || this.props.onColumnClick !== undefined)
                            ? 'button'
                            : undefined, "aria-describedby": !this.props.onRenderColumnHeaderTooltip && this._hasAccessibleLabel() ? parentId + "-" + column.key + "-tooltip" : undefined, onContextMenu: this._onColumnContextMenu, onClick: this._onColumnClick, "aria-haspopup": column.columnActionsMode === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].hasDropdown, "aria-expanded": column.columnActionsMode === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].hasDropdown ? !!column.isMenuOpen : undefined },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: parentId + "-" + column.key + "-name", className: classNames.cellName },
                            (column.iconName || column.iconClassName) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { className: classNames.iconClassName, iconName: column.iconName })),
                            column.isIconOnly ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.accessibleLabel }, column.name) : column.name),
                        column.isFiltered && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { className: classNames.nearIcon, iconName: "Filter" }),
                        column.isSorted && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { className: classNames.sortIcon, iconName: column.isSortedDescending ? 'SortDown' : 'SortUp' })),
                        column.isGrouped && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { className: classNames.nearIcon, iconName: "GroupedDescending" }),
                        column.columnActionsMode === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnActionsMode"].hasDropdown && !column.isIconOnly && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { "aria-hidden": true, className: classNames.filterChevron, iconName: "ChevronDown" }))))
                }, this._onRenderColumnHeaderTooltip)),
            !this.props.onRenderColumnHeaderTooltip ? this._renderAccessibleLabel() : null));
    };
    DetailsColumnBase.prototype.componentDidMount = function () {
        var _this = this;
        if (this.props.dragDropHelper && this.props.isDraggable) {
            this._addDragDropHandling();
        }
        var classNames = this._classNames;
        if (this.props.isDropped) {
            if (this._root.current) {
                this._root.current.classList.add(classNames.borderAfterDropping);
                this._async.setTimeout(function () {
                    if (_this._root.current) {
                        _this._root.current.classList.add(classNames.noBorderAfterDropping);
                    }
                }, CLASSNAME_ADD_INTERVAL);
            }
            this._async.setTimeout(function () {
                if (_this._root.current) {
                    _this._root.current.classList.remove(classNames.borderAfterDropping);
                    _this._root.current.classList.remove(classNames.noBorderAfterDropping);
                }
            }, TRANSITION_DURATION_DROP + CLASSNAME_ADD_INTERVAL);
        }
    };
    DetailsColumnBase.prototype.componentWillUnmount = function () {
        if (this._dragDropSubscription) {
            this._dragDropSubscription.dispose();
            delete this._dragDropSubscription;
        }
        this._async.dispose();
        this._events.dispose();
    };
    DetailsColumnBase.prototype.componentDidUpdate = function () {
        if (!this._dragDropSubscription && this.props.dragDropHelper && this.props.isDraggable) {
            this._addDragDropHandling();
        }
        if (this._dragDropSubscription && !this.props.isDraggable) {
            this._dragDropSubscription.dispose();
            this._events.off(this._root.current, 'mousedown');
            delete this._dragDropSubscription;
        }
    };
    DetailsColumnBase.prototype._getColumnDragDropOptions = function () {
        var _this = this;
        var columnIndex = this.props.columnIndex;
        var options = {
            selectionIndex: columnIndex,
            context: { data: columnIndex, index: columnIndex },
            canDrag: function () { return _this.props.isDraggable; },
            canDrop: function () { return false; },
            onDragStart: this._onDragStart,
            updateDropState: function () { return undefined; },
            onDrop: function () { return undefined; },
            onDragEnd: this._onDragEnd
        };
        return options;
    };
    DetailsColumnBase.prototype._hasAccessibleLabel = function () {
        var column = this.props.column;
        return !!(column.ariaLabel ||
            column.filterAriaLabel ||
            column.sortAscendingAriaLabel ||
            column.sortDescendingAriaLabel ||
            column.groupAriaLabel);
    };
    DetailsColumnBase.prototype._renderAccessibleLabel = function () {
        var _a = this.props, column = _a.column, parentId = _a.parentId;
        var classNames = this._classNames;
        return this._hasAccessibleLabel() && !this.props.onRenderColumnHeaderTooltip ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("label", { key: column.key + "_label", id: parentId + "-" + column.key + "-tooltip", className: classNames.accessibleLabel },
            column.ariaLabel,
            (column.isFiltered && column.filterAriaLabel) || null,
            (column.isSorted && (column.isSortedDescending ? column.sortDescendingAriaLabel : column.sortAscendingAriaLabel)) || null,
            (column.isGrouped && column.groupAriaLabel) || null)) : null;
    };
    DetailsColumnBase.prototype._addDragDropHandling = function () {
        this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getColumnDragDropOptions());
        // We need to use native on this to prevent MarqueeSelection from handling the event before us.
        this._events.on(this._root.current, 'mousedown', this._onRootMouseDown);
    };
    return DetailsColumnBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/DetailsList/DetailsColumn.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsColumn", function() { return DetailsColumn; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsColumn_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/DetailsColumn.base.js");
/* harmony import */ var _DetailsColumn_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsColumn.styles.js");



var DetailsColumn = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DetailsColumn_base__WEBPACK_IMPORTED_MODULE_1__["DetailsColumnBase"], _DetailsColumn_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DetailsColumn' });


/***/ }),

/***/ "./lib/components/DetailsList/DetailsColumn.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony import */ var _DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.styles.js");




var GlobalClassNames = {
    isActionable: 'is-actionable',
    cellIsCheck: 'ms-DetailsHeader-cellIsCheck',
    collapseButton: 'ms-DetailsHeader-collapseButton',
    isCollapsed: 'is-collapsed',
    isAllSelected: 'is-allSelected',
    isSelectAllHidden: 'is-selectAllHidden',
    isResizingColumn: 'is-resizingColumn',
    isEmpty: 'is-empty',
    isIconVisible: 'is-icon-visible',
    cellSizer: 'ms-DetailsHeader-cellSizer',
    isResizing: 'is-resizing',
    dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',
    dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',
    cellTitle: 'ms-DetailsHeader-cellTitle',
    cellName: 'ms-DetailsHeader-cellName',
    filterChevron: 'ms-DetailsHeader-filterChevron',
    gripperBarVerticalStyle: 'ms-DetailsColumn-gripperBar',
    nearIcon: 'ms-DetailsColumn-nearIcon'
};
var getStyles = function (props) {
    var _a;
    var theme = props.theme, headerClassName = props.headerClassName, iconClassName = props.iconClassName, isActionable = props.isActionable, isEmpty = props.isEmpty, isIconVisible = props.isIconVisible, isPadded = props.isPadded, isIconOnly = props.isIconOnly, _b = props.cellStyleProps, cellStyleProps = _b === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_CELL_STYLE_PROPS"] : _b, transitionDurationDrag = props.transitionDurationDrag, transitionDurationDrop = props.transitionDurationDrop;
    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(GlobalClassNames, theme);
    var colors = {
        iconForegroundColor: semanticColors.bodySubtext,
        headerForegroundColor: semanticColors.bodyText,
        headerBackgroundColor: semanticColors.bodyBackground,
        dropdownChevronForegroundColor: palette.neutralTertiary,
        resizerColor: palette.neutralTertiaryAlt
    };
    var nearIconStyle = {
        color: colors.iconForegroundColor,
        opacity: 1,
        paddingLeft: 8
    };
    var borderWhileDragging = {
        outline: "1px solid " + palette.themePrimary
    };
    var borderAfterDragOrDrop = {
        outlineColor: 'transparent'
    };
    return {
        root: [
            Object(_DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_3__["getCellStyles"])(props),
            fonts.small,
            isActionable && [
                classNames.isActionable,
                {
                    selectors: {
                        ':hover': {
                            color: semanticColors.bodyText,
                            background: semanticColors.listHeaderBackgroundHovered
                        },
                        ':active': {
                            background: semanticColors.listHeaderBackgroundPressed
                        }
                    }
                }
            ],
            isEmpty && [
                classNames.isEmpty,
                {
                    textOverflow: 'clip'
                }
            ],
            isIconVisible && classNames.isIconVisible,
            isPadded && {
                paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding
            },
            {
                selectors: {
                    ':hover i[data-icon-name="GripperBarVertical"]': {
                        display: 'block'
                    }
                }
            },
            headerClassName
        ],
        gripperBarVerticalStyle: {
            display: 'none',
            position: 'absolute',
            textAlign: 'left',
            color: palette.neutralTertiary,
            left: 1
        },
        nearIcon: [classNames.nearIcon, nearIconStyle],
        sortIcon: [
            nearIconStyle,
            {
                paddingLeft: 4,
                position: 'relative',
                top: 1
            }
        ],
        iconClassName: [
            {
                color: colors.iconForegroundColor,
                opacity: 1
            },
            iconClassName
        ],
        filterChevron: [
            classNames.filterChevron,
            {
                color: colors.dropdownChevronForegroundColor,
                paddingLeft: 6,
                verticalAlign: 'middle',
                fontSize: fonts.small.fontSize
            }
        ],
        cellTitle: [
            classNames.cellTitle,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme),
            tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'stretch', boxSizing: 'border-box', overflow: 'hidden', padding: "0 " + cellStyleProps.cellRightPadding + "px 0 " + cellStyleProps.cellLeftPadding + "px" }, (isIconOnly
                ? {
                    alignContent: 'flex-end',
                    maxHeight: '100%',
                    flexWrap: 'wrap-reverse'
                }
                : {}))
        ],
        cellName: [
            classNames.cellName,
            {
                flex: '0 1 auto',
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semibold,
                fontSize: fonts.medium.fontSize
            },
            isIconOnly && {
                selectors: (_a = {},
                    _a["." + classNames.nearIcon] = {
                        paddingLeft: 0
                    },
                    _a)
            }
        ],
        cellTooltip: {
            display: 'block',
            position: 'absolute',
            top: 0,
            left: 0,
            bottom: 0,
            right: 0
        },
        accessibleLabel: _Styling__WEBPACK_IMPORTED_MODULE_1__["hiddenContentStyle"],
        borderWhileDragging: borderWhileDragging,
        noBorderWhileDragging: [borderAfterDragOrDrop, { transition: "outline " + transitionDurationDrag + "ms ease" }],
        borderAfterDropping: borderWhileDragging,
        noBorderAfterDropping: [borderAfterDragOrDrop, { transition: "outline  " + transitionDurationDrop + "ms ease" }]
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/DetailsHeader.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderBase", function() { return DetailsHeaderBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Layer.js");
/* harmony import */ var _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");
/* harmony import */ var _GroupedList__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/GroupedList.js");
/* harmony import */ var _DetailsRowCheck__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.js");
/* harmony import */ var _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/utilities/selection/interfaces.js");
/* harmony import */ var _utilities_dragdrop_index__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/dragdrop/index.js");
/* harmony import */ var _components_DetailsList_DetailsColumn__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/components/DetailsList/DetailsColumn.js");
/* harmony import */ var _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.types.js");
















var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button
var MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button
var NO_COLUMNS = [];
var DetailsHeaderBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DetailsHeaderBase, _super);
    function DetailsHeaderBase(props) {
        var _this = _super.call(this, props) || this;
        _this._rootComponent = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._draggedColumnIndex = -1;
        _this._dropHintDetails = {};
        _this._updateDroppingState = function (newValue, event) {
            if (_this._draggedColumnIndex >= 0 && event.type !== 'drop' && !newValue) {
                _this._resetDropHints();
            }
        };
        _this._onDragOver = function (item, event) {
            if (_this._draggedColumnIndex >= 0) {
                event.stopPropagation();
                _this._computeDropHintToBeShown(event.clientX);
            }
        };
        _this._onDrop = function (item, event) {
            // Safe to assume this is defined since we're handling a drop event
            var columnReorderProps = _this._getColumnReorderProps();
            // Target index will not get changed if draggeditem is after target item.
            if (_this._draggedColumnIndex >= 0 && event) {
                var targetIndex = _this._draggedColumnIndex > _this._currentDropHintIndex ? _this._currentDropHintIndex : _this._currentDropHintIndex - 1;
                var isValidDrop = _this._isValidCurrentDropHintIndex();
                event.stopPropagation();
                if (isValidDrop) {
                    _this._onDropIndexInfo.sourceIndex = _this._draggedColumnIndex;
                    _this._onDropIndexInfo.targetIndex = targetIndex;
                    if (columnReorderProps.onColumnDrop) {
                        var dragDropDetails = {
                            draggedIndex: _this._draggedColumnIndex,
                            targetIndex: targetIndex
                        };
                        columnReorderProps.onColumnDrop(dragDropDetails);
                    }
                    else if (columnReorderProps.handleColumnReorder) {
                        columnReorderProps.handleColumnReorder(_this._draggedColumnIndex, targetIndex);
                    }
                }
            }
            _this._resetDropHints();
            _this._dropHintDetails = {};
            _this._draggedColumnIndex = -1;
        };
        _this._updateDragInfo = function (props, event) {
            // Safe to assume this is defined since we're handling a drag event
            var columnReorderProps = _this._getColumnReorderProps();
            var itemIndex = props.itemIndex;
            if (itemIndex >= 0) {
                // Column index is set based on the checkbox
                _this._draggedColumnIndex = _this._isCheckboxColumnHidden() ? itemIndex - 1 : itemIndex - 2;
                _this._getDropHintPositions();
                if (columnReorderProps.onColumnDragStart) {
                    columnReorderProps.onColumnDragStart(true);
                }
            }
            else if (event && _this._draggedColumnIndex >= 0) {
                _this._resetDropHints();
                _this._draggedColumnIndex = -1;
                _this._dropHintDetails = {};
                if (columnReorderProps.onColumnDragEnd) {
                    var columnDragEndLocation = _this._isEventOnHeader(event);
                    columnReorderProps.onColumnDragEnd({ dropLocation: columnDragEndLocation }, event);
                }
            }
        };
        _this._getDropHintPositions = function () {
            var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;
            // Safe to assume this is defined since we're handling a drag/drop event
            var columnReorderProps = _this._getColumnReorderProps();
            var prevX = 0;
            var prevMid = 0;
            var prevRef;
            var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;
            var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;
            for (var i = frozenColumnCountFromStart; i < columns.length - frozenColumnCountFromEnd + 1; i++) {
                if (_this._rootElement) {
                    var dropHintElement = _this._rootElement.querySelectorAll('#columnDropHint_' + i)[0];
                    if (dropHintElement) {
                        if (i === frozenColumnCountFromStart) {
                            prevX = dropHintElement.offsetLeft;
                            prevMid = dropHintElement.offsetLeft;
                            prevRef = dropHintElement;
                        }
                        else {
                            var newMid = (dropHintElement.offsetLeft + prevX) / 2;
                            _this._dropHintDetails[i - 1] = {
                                originX: prevX,
                                startX: prevMid,
                                endX: newMid,
                                dropHintElementRef: prevRef
                            };
                            prevMid = newMid;
                            prevRef = dropHintElement;
                            prevX = dropHintElement.offsetLeft;
                            if (i === columns.length - frozenColumnCountFromEnd) {
                                _this._dropHintDetails[i] = {
                                    originX: prevX,
                                    startX: prevMid,
                                    endX: dropHintElement.offsetLeft,
                                    dropHintElementRef: prevRef
                                };
                            }
                        }
                    }
                }
            }
        };
        /**
         * Based on the given cursor position, finds the nearest drop hint and updates the state to make it visible
         */
        _this._computeDropHintToBeShown = function (clientX) {
            if (_this._rootElement) {
                var clientRect = _this._rootElement.getBoundingClientRect();
                var headerOriginX = clientRect.left;
                var eventXRelativePosition = clientX - headerOriginX;
                var currentDropHintIndex = _this._currentDropHintIndex;
                if (_this._isValidCurrentDropHintIndex()) {
                    if (_liesBetween(eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex].startX, _this._dropHintDetails[currentDropHintIndex].endX)) {
                        return;
                    }
                }
                var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;
                // Safe to assume this is defined since we're handling a drag/drop event
                var columnReorderProps = _this._getColumnReorderProps();
                var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;
                var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;
                var currentIndex = frozenColumnCountFromStart;
                var lastValidColumn = columns.length - frozenColumnCountFromEnd;
                var indexToUpdate = -1;
                if (_isBefore(eventXRelativePosition, _this._dropHintDetails[currentIndex].endX)) {
                    indexToUpdate = currentIndex;
                }
                else if (_isAfter(eventXRelativePosition, _this._dropHintDetails[lastValidColumn].startX)) {
                    indexToUpdate = lastValidColumn;
                }
                else if (_this._isValidCurrentDropHintIndex()) {
                    if (_this._dropHintDetails[currentDropHintIndex + 1] &&
                        _liesBetween(eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex + 1].startX, _this._dropHintDetails[currentDropHintIndex + 1].endX)) {
                        indexToUpdate = currentDropHintIndex + 1;
                    }
                    else if (_this._dropHintDetails[currentDropHintIndex - 1] &&
                        _liesBetween(eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex - 1].startX, _this._dropHintDetails[currentDropHintIndex - 1].endX)) {
                        indexToUpdate = currentDropHintIndex - 1;
                    }
                }
                if (indexToUpdate === -1) {
                    var startIndex = frozenColumnCountFromStart;
                    var endIndex = lastValidColumn;
                    while (startIndex < endIndex) {
                        var middleIndex = Math.ceil((endIndex + startIndex) / 2);
                        if (_liesBetween(eventXRelativePosition, _this._dropHintDetails[middleIndex].startX, _this._dropHintDetails[middleIndex].endX)) {
                            indexToUpdate = middleIndex;
                            break;
                        }
                        else if (_isBefore(eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {
                            endIndex = middleIndex;
                        }
                        else if (_isAfter(eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {
                            startIndex = middleIndex;
                        }
                    }
                }
                if (indexToUpdate === _this._draggedColumnIndex || indexToUpdate === _this._draggedColumnIndex + 1) {
                    if (_this._isValidCurrentDropHintIndex()) {
                        _this._resetDropHints();
                    }
                }
                else if (currentDropHintIndex !== indexToUpdate && indexToUpdate >= 0) {
                    _this._resetDropHints();
                    _this._updateDropHintElement(_this._dropHintDetails[indexToUpdate].dropHintElementRef, 'inline-block');
                    _this._currentDropHintIndex = indexToUpdate;
                }
            }
        };
        _this._renderColumnSizer = function (_a) {
            var _b;
            var columnIndex = _a.columnIndex;
            var _c = _this.props.columns, columns = _c === void 0 ? NO_COLUMNS : _c;
            var column = columns[columnIndex];
            var columnResizeDetails = _this.state.columnResizeDetails;
            var classNames = _this._classNames;
            return column.isResizable ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: column.key + "_sizer", "aria-hidden": true, role: "button", "data-is-focusable": false, onClick: _stopPropagation, "data-sizer-index": columnIndex, onBlur: _this._onSizerBlur, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(classNames.cellSizer, columnIndex < columns.length - 1 ? classNames.cellSizerStart : classNames.cellSizerEnd, (_b = {},
                    _b[classNames.cellIsResizing] = columnResizeDetails && columnResizeDetails.columnIndex === columnIndex,
                    _b)), onDoubleClick: _this._onSizerDoubleClick.bind(_this, columnIndex) })) : null;
        };
        _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);
        };
        /**
         * Called when the select all toggle is clicked.
         */
        _this._onSelectAllClicked = function () {
            var selection = _this.props.selection;
            if (selection) {
                selection.toggleAllSelected();
            }
        };
        _this._onRootMouseDown = function (ev) {
            var columnIndexAttr = ev.target.getAttribute('data-sizer-index');
            var columnIndex = Number(columnIndexAttr);
            var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;
            if (columnIndexAttr === null || ev.button !== MOUSEDOWN_PRIMARY_BUTTON) {
                // Ignore anything except the primary button.
                return;
            }
            _this.setState({
                columnResizeDetails: {
                    columnIndex: columnIndex,
                    columnMinWidth: columns[columnIndex].calculatedWidth,
                    originX: ev.clientX
                }
            });
            ev.preventDefault();
            ev.stopPropagation();
        };
        _this._onRootMouseMove = function (ev) {
            var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;
            if (columnResizeDetails && !isSizing && ev.clientX !== columnResizeDetails.originX) {
                _this.setState({ isSizing: true });
            }
        };
        _this._onRootRef = function (focusZone) {
            if (focusZone) {
                // Need to resolve the actual DOM node, not the component. The element itself will be used for drag/drop and focusing.
                _this._rootElement = Object(react_dom__WEBPACK_IMPORTED_MODULE_2__["findDOMNode"])(focusZone);
            }
            else {
                _this._rootElement = undefined;
            }
        };
        _this._onRootKeyDown = function (ev) {
            var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;
            var _b = _this.props, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, onColumnResized = _b.onColumnResized;
            var columnIndexAttr = ev.target.getAttribute('data-sizer-index');
            if (!columnIndexAttr || isSizing) {
                return;
            }
            var columnIndex = Number(columnIndexAttr);
            if (!columnResizeDetails) {
                if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].enter) {
                    _this.setState({
                        columnResizeDetails: {
                            columnIndex: columnIndex,
                            columnMinWidth: columns[columnIndex].calculatedWidth
                        }
                    });
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
            else {
                var increment = void 0;
                if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].enter) {
                    _this.setState({
                        columnResizeDetails: undefined
                    });
                    ev.preventDefault();
                    ev.stopPropagation();
                }
                else if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].left) {
                    increment = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? 1 : -1;
                }
                else if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].right) {
                    increment = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? -1 : 1;
                }
                if (increment) {
                    if (!ev.shiftKey) {
                        increment *= 10;
                    }
                    _this.setState({
                        columnResizeDetails: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, columnResizeDetails, { columnMinWidth: columnResizeDetails.columnMinWidth + increment })
                    });
                    if (onColumnResized) {
                        onColumnResized(columns[columnIndex], columnResizeDetails.columnMinWidth + increment, columnIndex);
                    }
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        /**
         * mouse move event handler in the header
         * it will set isSizing state to true when user clicked on the sizer and move the mouse.
         *
         * @param ev - mouse move event
         */
        _this._onSizerMouseMove = function (ev) {
            var 
            // use buttons property here since ev.button in some edge case is not upding well during the move.
            // but firefox doesn't support it, so we set the default value when it is not defined.
            buttons = ev.buttons;
            var _a = _this.props, onColumnIsSizingChanged = _a.onColumnIsSizingChanged, onColumnResized = _a.onColumnResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;
            var columnResizeDetails = _this.state.columnResizeDetails;
            if (buttons !== undefined && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {
                // cancel mouse down event and return early when the primary button is not pressed
                _this._onSizerMouseUp(ev);
                return;
            }
            if (ev.clientX !== columnResizeDetails.originX) {
                if (onColumnIsSizingChanged) {
                    onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], true);
                }
            }
            if (onColumnResized) {
                var movement = ev.clientX - columnResizeDetails.originX;
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])()) {
                    movement = -movement;
                }
                onColumnResized(columns[columnResizeDetails.columnIndex], columnResizeDetails.columnMinWidth + movement, columnResizeDetails.columnIndex);
            }
        };
        _this._onSizerBlur = function (ev) {
            var columnResizeDetails = _this.state.columnResizeDetails;
            if (columnResizeDetails) {
                _this.setState({
                    columnResizeDetails: undefined,
                    isSizing: false
                });
            }
        };
        /**
         * mouse up event handler in the header
         * clear the resize related state.
         * This is to ensure we can catch double click event
         *
         * @param ev - mouse up event
         */
        _this._onSizerMouseUp = function (ev) {
            var _a = _this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, onColumnIsSizingChanged = _a.onColumnIsSizingChanged;
            var columnResizeDetails = _this.state.columnResizeDetails;
            _this.setState({
                columnResizeDetails: undefined,
                isSizing: false
            });
            if (onColumnIsSizingChanged) {
                onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], false);
            }
        };
        _this._onToggleCollapseAll = function () {
            var onToggleCollapseAll = _this.props.onToggleCollapseAll;
            var newCollapsed = !_this.state.isAllCollapsed;
            _this.setState({
                isAllCollapsed: newCollapsed
            });
            if (onToggleCollapseAll) {
                onToggleCollapseAll(newCollapsed);
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["EventGroup"](_this);
        _this.state = {
            columnResizeDetails: undefined,
            isAllCollapsed: _this.props.isAllCollapsed,
            isAllSelected: !!_this.props.selection && _this.props.selection.isAllSelected()
        };
        _this._onDropIndexInfo = {
            sourceIndex: -1,
            targetIndex: -1
        };
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('header');
        _this._currentDropHintIndex = -1;
        // The drag drop handler won't do any work until subscribe() is called,
        // so always set it up for convenience
        _this._dragDropHelper = new _utilities_dragdrop_index__WEBPACK_IMPORTED_MODULE_12__["DragDropHelper"]({
            selection: {
                getSelection: function () {
                    return;
                }
            },
            minimumPixelsForDrag: _this.props.minimumPixelsForDrag
        });
        return _this;
    }
    DetailsHeaderBase.prototype.componentDidMount = function () {
        var selection = this.props.selection;
        this._events.on(selection, _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_11__["SELECTION_CHANGE"], this._onSelectionChanged);
        // We need to use native on this to prevent MarqueeSelection from handling the event before us.
        this._events.on(this._rootElement, 'mousedown', this._onRootMouseDown);
        this._events.on(this._rootElement, 'keydown', this._onRootKeyDown);
        if (this._getColumnReorderProps()) {
            this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement, this._events, this._getHeaderDragDropOptions());
        }
    };
    DetailsHeaderBase.prototype.componentDidUpdate = function (prevProps) {
        if (this._getColumnReorderProps()) {
            if (!this._subscriptionObject) {
                this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement, this._events, this._getHeaderDragDropOptions());
            }
        }
        else if (this._subscriptionObject) {
            this._subscriptionObject.dispose();
            delete this._subscriptionObject;
        }
        if (this.props !== prevProps && this._onDropIndexInfo.sourceIndex >= 0 && this._onDropIndexInfo.targetIndex >= 0) {
            var _a = prevProps.columns, previousColumns = _a === void 0 ? NO_COLUMNS : _a;
            var _b = this.props.columns, columns = _b === void 0 ? NO_COLUMNS : _b;
            if (previousColumns[this._onDropIndexInfo.sourceIndex].key === columns[this._onDropIndexInfo.targetIndex].key) {
                this._onDropIndexInfo = {
                    sourceIndex: -1,
                    targetIndex: -1
                };
            }
        }
        if (this.props.isAllCollapsed !== prevProps.isAllCollapsed) {
            this.setState({ isAllCollapsed: this.props.isAllCollapsed });
        }
    };
    DetailsHeaderBase.prototype.componentWillUnmount = function () {
        if (this._subscriptionObject) {
            this._subscriptionObject.dispose();
            delete this._subscriptionObject;
        }
        this._dragDropHelper.dispose();
        this._events.dispose();
    };
    DetailsHeaderBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, ariaLabel = _a.ariaLabel, ariaLabelForToggleAllGroupsButton = _a.ariaLabelForToggleAllGroupsButton, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, selectAllVisibility = _a.selectAllVisibility, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, indentWidth = _a.indentWidth, _c = _a.rowWidth, rowWidth = _c === void 0 ? 0 : _c, onColumnClick = _a.onColumnClick, onColumnContextMenu = _a.onColumnContextMenu, _d = _a.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _d === void 0 ? this._onRenderColumnHeaderTooltip : _d, styles = _a.styles, selectionMode = _a.selectionMode, theme = _a.theme, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, groupNestingDepth = _a.groupNestingDepth, useFastIcons = _a.useFastIcons, checkboxVisibility = _a.checkboxVisibility, className = _a.className;
        var _e = this.state, isAllSelected = _e.isAllSelected, columnResizeDetails = _e.columnResizeDetails, isSizing = _e.isSizing, isAllCollapsed = _e.isAllCollapsed;
        var showCheckbox = selectAllVisibility !== _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_14__["SelectAllVisibility"].none;
        var isCheckboxHidden = selectAllVisibility === _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_14__["SelectAllVisibility"].hidden;
        var isCheckboxAlwaysVisible = checkboxVisibility === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxVisibility"].always;
        var columnReorderProps = this._getColumnReorderProps();
        var frozenColumnCountFromStart = columnReorderProps && columnReorderProps.frozenColumnCountFromStart ? columnReorderProps.frozenColumnCountFromStart : 0;
        var frozenColumnCountFromEnd = columnReorderProps && columnReorderProps.frozenColumnCountFromEnd ? columnReorderProps.frozenColumnCountFromEnd : 0;
        this._classNames = getClassNames(styles, {
            theme: theme,
            isAllSelected: isAllSelected,
            isSelectAllHidden: selectAllVisibility === _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_14__["SelectAllVisibility"].hidden,
            isResizingColumn: !!columnResizeDetails && isSizing,
            isSizing: isSizing,
            isAllCollapsed: isAllCollapsed,
            isCheckboxHidden: isCheckboxHidden,
            className: className
        });
        var classNames = this._classNames;
        var IconComponent = useFastIcons ? _Icon__WEBPACK_IMPORTED_MODULE_6__["FontIcon"] : _Icon__WEBPACK_IMPORTED_MODULE_6__["Icon"];
        var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])();
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZone"], { role: "row", "aria-label": ariaLabel, className: classNames.root, componentRef: this._rootComponent, ref: this._onRootRef, onMouseMove: this._onRootMouseMove, "data-automationid": "DetailsHeader", style: { minWidth: rowWidth }, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZoneDirection"].horizontal },
            showCheckbox
                ? [
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: "__checkbox", className: classNames.cellIsCheck, "aria-labelledby": this._id + "-check", onClick: !isCheckboxHidden ? this._onSelectAllClicked : undefined, "aria-colindex": 1, role: 'columnheader' }, onRenderColumnHeaderTooltip({
                        hostClassName: classNames.checkTooltip,
                        id: this._id + "-checkTooltip",
                        setAriaDescribedBy: false,
                        content: ariaLabelForSelectAllCheckbox,
                        children: (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DetailsRowCheck__WEBPACK_IMPORTED_MODULE_10__["DetailsRowCheck"], { id: this._id + "-check", "aria-label": selectionMode === _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_11__["SelectionMode"].multiple ? ariaLabelForSelectAllCheckbox : ariaLabelForSelectionColumn, "aria-describedby": !isCheckboxHidden
                                ? ariaLabelForSelectAllCheckbox && !this.props.onRenderColumnHeaderTooltip
                                    ? this._id + "-checkTooltip"
                                    : undefined
                                : ariaLabelForSelectionColumn && !this.props.onRenderColumnHeaderTooltip
                                    ? this._id + "-checkTooltip"
                                    : undefined, "data-is-focusable": !isCheckboxHidden || undefined, isHeader: true, selected: isAllSelected, anySelected: false, canSelect: !isCheckboxHidden, className: classNames.check, onRenderDetailsCheckbox: onRenderDetailsCheckbox, useFastIcons: useFastIcons, isVisible: isCheckboxAlwaysVisible }))
                    }, this._onRenderColumnHeaderTooltip)),
                    !this.props.onRenderColumnHeaderTooltip ? (ariaLabelForSelectAllCheckbox && !isCheckboxHidden ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("label", { key: "__checkboxLabel", id: this._id + "-checkTooltip", className: classNames.accessibleLabel, "aria-hidden": true }, ariaLabelForSelectAllCheckbox)) : ariaLabelForSelectionColumn && isCheckboxHidden ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("label", { key: "__checkboxLabel", id: this._id + "-checkTooltip", className: classNames.accessibleLabel, "aria-hidden": true }, ariaLabelForSelectionColumn)) : null) : null
                ]
                : null,
            groupNestingDepth > 0 && this.props.collapseAllVisibility === _GroupedList__WEBPACK_IMPORTED_MODULE_9__["CollapseAllVisibility"].visible ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.cellIsGroupExpander, onClick: this._onToggleCollapseAll, "data-is-focusable": true, "aria-label": ariaLabelForToggleAllGroupsButton, "aria-expanded": !isAllCollapsed, role: ariaLabelForToggleAllGroupsButton ? 'button' : undefined },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { className: classNames.collapseButton, iconName: isRTL ? 'ChevronLeftMed' : 'ChevronRightMed' }))) : null,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_8__["GroupSpacer"], { indentWidth: indentWidth, count: groupNestingDepth - 1 }),
            columns.map(function (column, columnIndex) {
                var _isDraggable = columnReorderProps
                    ? columnIndex >= frozenColumnCountFromStart && columnIndex < columns.length - frozenColumnCountFromEnd
                    : false;
                return [
                    columnReorderProps &&
                        (_isDraggable || columnIndex === columns.length - frozenColumnCountFromEnd) &&
                        _this._renderDropHint(columnIndex),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_components_DetailsList_DetailsColumn__WEBPACK_IMPORTED_MODULE_13__["DetailsColumn"], { column: column, key: column.key, columnIndex: (showCheckbox ? 2 : 1) + columnIndex, parentId: _this._id, isDraggable: _isDraggable, updateDragInfo: _this._updateDragInfo, dragDropHelper: _this._dragDropHelper, onColumnClick: onColumnClick, onColumnContextMenu: onColumnContextMenu, 
                        // Do not render tooltips by default, but allow for override via props.
                        onRenderColumnHeaderTooltip: _this.props.onRenderColumnHeaderTooltip, isDropped: _this._onDropIndexInfo.targetIndex === columnIndex, cellStyleProps: _this.props.cellStyleProps, useFastIcons: useFastIcons }),
                    _this._renderColumnDivider(columnIndex)
                ];
            }),
            columnReorderProps && frozenColumnCountFromEnd === 0 && this._renderDropHint(columns.length),
            isSizing && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_7__["Layer"], null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.sizingOverlay, onMouseMove: this._onSizerMouseMove, onMouseUp: this._onSizerMouseUp })))));
    };
    /** Set focus to the active thing in the focus area. */
    DetailsHeaderBase.prototype.focus = function () {
        return Boolean(this._rootComponent.current && this._rootComponent.current.focus());
    };
    /**
     * Gets column reorder props from this.props. If the calling code is part of setting up or
     * handling drag/drop events, it's safe to assume that this method's return value is defined
     * (because drag/drop handling will only be set up if reorder props are given).
     */
    DetailsHeaderBase.prototype._getColumnReorderProps = function () {
        var _a = this.props, columnReorderOptions = _a.columnReorderOptions, columnReorderProps = _a.columnReorderProps;
        return columnReorderProps || (columnReorderOptions && tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, columnReorderOptions, { onColumnDragEnd: undefined }));
    };
    DetailsHeaderBase.prototype._getHeaderDragDropOptions = function () {
        var options = {
            selectionIndex: 1,
            context: { data: this, index: 0 },
            canDrag: function () { return false; },
            canDrop: function () { return true; },
            onDragStart: function () { return undefined; },
            updateDropState: this._updateDroppingState,
            onDrop: this._onDrop,
            onDragEnd: function () { return undefined; },
            onDragOver: this._onDragOver
        };
        return options;
    };
    DetailsHeaderBase.prototype._isValidCurrentDropHintIndex = function () {
        return this._currentDropHintIndex >= 0;
    };
    /**
     * @returns whether or not the "Select All" checkbox column is hidden.
     */
    DetailsHeaderBase.prototype._isCheckboxColumnHidden = function () {
        var _a = this.props, selectionMode = _a.selectionMode, checkboxVisibility = _a.checkboxVisibility;
        return selectionMode === _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_11__["SelectionMode"].none || checkboxVisibility === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxVisibility"].hidden;
    };
    DetailsHeaderBase.prototype._resetDropHints = function () {
        if (this._currentDropHintIndex >= 0) {
            this._updateDropHintElement(this._dropHintDetails[this._currentDropHintIndex].dropHintElementRef, 'none');
            this._currentDropHintIndex = -1;
        }
    };
    DetailsHeaderBase.prototype._updateDropHintElement = function (element, displayProperty) {
        element.childNodes[1].style.display = displayProperty;
        element.childNodes[0].style.display = displayProperty;
    };
    DetailsHeaderBase.prototype._isEventOnHeader = function (event) {
        if (this._rootElement) {
            var clientRect = this._rootElement.getBoundingClientRect();
            if (event.clientX > clientRect.left &&
                event.clientX < clientRect.right &&
                event.clientY > clientRect.top &&
                event.clientY < clientRect.bottom) {
                return _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["ColumnDragEndLocation"].header;
            }
        }
    };
    DetailsHeaderBase.prototype._renderColumnDivider = function (columnIndex) {
        var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;
        var column = columns[columnIndex];
        var onRenderDivider = column.onRenderDivider;
        return onRenderDivider
            ? onRenderDivider({ column: column, columnIndex: columnIndex }, this._renderColumnSizer)
            : this._renderColumnSizer({ column: column, columnIndex: columnIndex });
    };
    DetailsHeaderBase.prototype._renderDropHint = function (dropHintIndex) {
        var classNames = this._classNames;
        var IconComponent = this.props.useFastIcons ? _Icon__WEBPACK_IMPORTED_MODULE_6__["FontIcon"] : _Icon__WEBPACK_IMPORTED_MODULE_6__["Icon"];
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: 'dropHintKey', className: classNames.dropHintStyle, id: "columnDropHint_" + dropHintIndex },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](IconComponent, { key: "dropHintCircleKey", "aria-hidden": true, "data-is-focusable": false, "data-sizer-index": dropHintIndex, className: classNames.dropHintCaretStyle, iconName: 'CircleShapeSolid' }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: "dropHintLineKey", "aria-hidden": true, "data-is-focusable": false, "data-sizer-index": dropHintIndex, className: classNames.dropHintLineStyle })));
    };
    /**
     * double click on the column sizer will auto ajust column width
     * to fit the longest content among current rendered rows.
     *
     * @param columnIndex - index of the column user double clicked
     * @param ev - mouse double click event
     */
    DetailsHeaderBase.prototype._onSizerDoubleClick = function (columnIndex, ev) {
        var _a = this.props, onColumnAutoResized = _a.onColumnAutoResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;
        if (onColumnAutoResized) {
            onColumnAutoResized(columns[columnIndex], columnIndex);
        }
    };
    DetailsHeaderBase.prototype._onSelectionChanged = function () {
        var isAllSelected = !!this.props.selection && this.props.selection.isAllSelected();
        if (this.state.isAllSelected !== isAllSelected) {
            this.setState({
                isAllSelected: isAllSelected
            });
        }
    };
    DetailsHeaderBase.defaultProps = {
        selectAllVisibility: _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_14__["SelectAllVisibility"].visible,
        collapseAllVisibility: _GroupedList__WEBPACK_IMPORTED_MODULE_9__["CollapseAllVisibility"].visible,
        useFastIcons: true
    };
    return DetailsHeaderBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

function _liesBetween(target, left, right) {
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? target <= left && target >= right : target >= left && target <= right;
}
function _isBefore(a, b) {
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? a >= b : a <= b;
}
function _isAfter(a, b) {
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? a <= b : a >= b;
}
function _stopPropagation(ev) {
    ev.stopPropagation();
}


/***/ }),

/***/ "./lib/components/DetailsList/DetailsHeader.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsHeader", function() { return DetailsHeader; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsHeader_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.base.js");
/* harmony import */ var _DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.styles.js");



var DetailsHeader = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DetailsHeader_base__WEBPACK_IMPORTED_MODULE_1__["DetailsHeaderBase"], _DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DetailsHeader' });


/***/ }),

/***/ "./lib/components/DetailsList/DetailsHeader.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HEADER_HEIGHT", function() { return HEADER_HEIGHT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCellStyles", function() { return getCellStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony import */ var _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");



// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.

var GlobalClassNames = {
    tooltipHost: 'ms-TooltipHost',
    root: 'ms-DetailsHeader',
    cell: 'ms-DetailsHeader-cell',
    cellIsCheck: 'ms-DetailsHeader-cellIsCheck',
    collapseButton: 'ms-DetailsHeader-collapseButton',
    isCollapsed: 'is-collapsed',
    isAllSelected: 'is-allSelected',
    isSelectAllHidden: 'is-selectAllHidden',
    isResizingColumn: 'is-resizingColumn',
    cellSizer: 'ms-DetailsHeader-cellSizer',
    isResizing: 'is-resizing',
    dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',
    dropHintCaretStyle: 'ms-DetailsHeader-dropHintCaretStyle',
    dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',
    cellTitle: 'ms-DetailsHeader-cellTitle',
    cellName: 'ms-DetailsHeader-cellName',
    filterChevron: 'ms-DetailsHeader-filterChevron',
    gripperBarVertical: 'ms-DetailsColumn-gripperBarVertical',
    checkTooltip: 'ms-DetailsHeader-checkTooltip',
    check: 'ms-DetailsHeader-check'
};
var HEADER_HEIGHT = 42;
var getCellStyles = function (props) {
    var theme = props.theme, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_CELL_STYLE_PROPS"] : _a;
    var semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return [
        classNames.cell,
        Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
        {
            color: semanticColors.bodyText,
            position: 'relative',
            display: 'inline-block',
            boxSizing: 'border-box',
            padding: "0 " + cellStyleProps.cellRightPadding + "px 0 " + cellStyleProps.cellLeftPadding + "px",
            lineHeight: 'inherit',
            margin: '0',
            height: HEADER_HEIGHT,
            verticalAlign: 'top',
            whiteSpace: 'nowrap',
            textOverflow: 'ellipsis',
            textAlign: 'left'
        }
    ];
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var theme = props.theme, className = props.className, isSelectAllHidden = props.isSelectAllHidden, isAllSelected = props.isAllSelected, isResizingColumn = props.isResizingColumn, isSizing = props.isSizing, isAllCollapsed = props.isAllCollapsed, _f = props.cellStyleProps, cellStyleProps = _f === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_CELL_STYLE_PROPS"] : _f;
    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var colors = {
        iconForegroundColor: semanticColors.bodySubtext,
        headerForegroundColor: semanticColors.bodyText,
        headerBackgroundColor: semanticColors.bodyBackground,
        dropdownChevronForegroundColor: palette.neutralTertiary,
        resizerColor: palette.neutralTertiaryAlt
    };
    var cellSizerFadeInStyles = {
        opacity: 1,
        transition: 'opacity 0.3s linear'
    };
    var cellStyles = getCellStyles(props);
    return {
        root: [
            classNames.root,
            fonts.small,
            {
                display: 'inline-block',
                background: colors.headerBackgroundColor,
                position: 'relative',
                minWidth: '100%',
                verticalAlign: 'top',
                height: HEADER_HEIGHT,
                lineHeight: HEADER_HEIGHT,
                whiteSpace: 'nowrap',
                boxSizing: 'content-box',
                paddingBottom: '1px',
                paddingTop: '16px',
                borderBottom: "1px solid " + semanticColors.bodyDivider,
                cursor: 'default',
                userSelect: 'none',
                selectors: (_a = {},
                    _a["&:hover ." + classNames.check] = {
                        opacity: 1
                    },
                    _a["& ." + classNames.tooltipHost + " ." + classNames.checkTooltip] = {
                        display: 'block'
                    },
                    _a)
            },
            isAllSelected && classNames.isAllSelected,
            isSelectAllHidden && {
                selectors: (_b = {},
                    _b["& ." + classNames.cellIsCheck] = {
                        visibility: 'hidden'
                    },
                    _b)
            },
            isResizingColumn && classNames.isResizingColumn,
            className
        ],
        check: [
            classNames.check,
            {
                height: HEADER_HEIGHT
            },
            {
                selectors: (_c = {},
                    _c["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus"] = {
                        opacity: 1
                    },
                    _c)
            }
        ],
        cellWrapperPadded: {
            paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding
        },
        cellIsCheck: [
            cellStyles,
            classNames.cellIsCheck,
            {
                position: 'relative',
                padding: 0,
                margin: 0,
                display: 'inline-flex',
                alignItems: 'center',
                border: 'none'
            },
            isAllSelected && {
                opacity: 1
            }
        ],
        cellIsGroupExpander: [
            cellStyles,
            {
                display: 'inline-flex',
                alignItems: 'center',
                justifyContent: 'center',
                fontSize: fonts.small.fontSize,
                padding: 0,
                border: 'none',
                width: _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_3__["SPACER_WIDTH"],
                color: palette.neutralSecondary,
                selectors: {
                    ':hover': {
                        backgroundColor: palette.neutralLighter
                    },
                    ':active': {
                        backgroundColor: palette.neutralLight
                    }
                }
            }
        ],
        cellIsActionable: {
            selectors: {
                ':hover': {
                    color: semanticColors.bodyText,
                    background: semanticColors.listHeaderBackgroundHovered
                },
                ':active': {
                    background: semanticColors.listHeaderBackgroundPressed
                }
            }
        },
        cellIsEmpty: {
            textOverflow: 'clip'
        },
        cellSizer: [
            classNames.cellSizer,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["focusClear"])(),
            {
                display: 'inline-block',
                position: 'relative',
                cursor: 'ew-resize',
                bottom: 0,
                top: 0,
                overflow: 'hidden',
                height: 'inherit',
                background: 'transparent',
                zIndex: 1,
                width: 16,
                selectors: (_d = {
                        ':after': {
                            content: '""',
                            position: 'absolute',
                            top: 0,
                            bottom: 0,
                            width: 1,
                            background: colors.resizerColor,
                            opacity: 0,
                            left: '50%'
                        },
                        ':focus:after': cellSizerFadeInStyles,
                        ':hover:after': cellSizerFadeInStyles
                    },
                    _d["&." + classNames.isResizing + ":after"] = [
                        cellSizerFadeInStyles,
                        {
                            boxShadow: '0 0 5px 0 rgba(0, 0, 0, 0.4)'
                        }
                    ],
                    _d)
            }
        ],
        cellIsResizing: classNames.isResizing,
        cellSizerStart: {
            margin: '0 -8px'
        },
        cellSizerEnd: {
            margin: 0,
            marginLeft: -16
        },
        collapseButton: [
            classNames.collapseButton,
            {
                transformOrigin: '50% 50%',
                transition: 'transform .1s linear'
            },
            isAllCollapsed
                ? [
                    classNames.isCollapsed,
                    {
                        transform: 'rotate(0deg)'
                    }
                ]
                : {
                    transform: 'rotate(90deg)'
                }
        ],
        checkTooltip: classNames.checkTooltip,
        sizingOverlay: isSizing && {
            position: 'absolute',
            left: 0,
            top: 0,
            right: 0,
            bottom: 0,
            cursor: 'ew-resize',
            background: 'rgba(255, 255, 255, 0)',
            selectors: (_e = {},
                _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    background: 'transparent',
                    MsHighContrastAdjust: 'none'
                },
                _e)
        },
        accessibleLabel: _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"],
        dropHintCircleStyle: [
            classNames.dropHintCircleStyle,
            {
                display: 'inline-block',
                visibility: 'hidden',
                position: 'absolute',
                bottom: 0,
                height: 9,
                width: 9,
                borderRadius: '50%',
                marginLeft: -5,
                top: 34,
                overflow: 'visible',
                zIndex: 10,
                border: "1px solid " + palette.themePrimary,
                background: palette.white
            }
        ],
        dropHintCaretStyle: [
            classNames.dropHintCaretStyle,
            {
                display: 'none',
                position: 'absolute',
                top: -28,
                left: -6.5,
                fontSize: fonts.medium.fontSize,
                color: palette.themePrimary,
                overflow: 'visible',
                zIndex: 10
            }
        ],
        dropHintLineStyle: [
            classNames.dropHintLineStyle,
            {
                display: 'none',
                position: 'absolute',
                bottom: 0,
                top: 0,
                overflow: 'hidden',
                height: 42,
                width: 1,
                background: palette.themePrimary,
                zIndex: 10
            }
        ],
        dropHintStyle: {
            display: 'inline-block',
            position: 'absolute'
        }
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/DetailsHeader.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectAllVisibility", function() { return SelectAllVisibility; });
/**
 * {@docCategory DetailsList}
 */
var SelectAllVisibility;
(function (SelectAllVisibility) {
    SelectAllVisibility[SelectAllVisibility["none"] = 0] = "none";
    SelectAllVisibility[SelectAllVisibility["hidden"] = 1] = "hidden";
    SelectAllVisibility[SelectAllVisibility["visible"] = 2] = "visible";
})(SelectAllVisibility || (SelectAllVisibility = {}));


/***/ }),

/***/ "./lib/components/DetailsList/DetailsList.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsListBase", function() { return DetailsListBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildColumns", function() { return buildColumns; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony import */ var _DetailsList_DetailsHeader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.js");
/* harmony import */ var _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.types.js");
/* harmony import */ var _DetailsList_DetailsRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony import */ var _utilities_dragdrop_DragDropHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/dragdrop/DragDropHelper.js");
/* harmony import */ var _GroupedList__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/GroupedList.js");
/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/List.js");
/* harmony import */ var _utilities_decorators_withViewport__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/decorators/withViewport.js");
/* harmony import */ var _utilities_groupedList_GroupedListUtility__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/utilities/groupedList/GroupedListUtility.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony import */ var _DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.styles.js");
/* harmony import */ var _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");
















// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.

var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var MIN_COLUMN_WIDTH = 100; // this is the global min width
var DEFAULT_RENDERED_WINDOWS_AHEAD = 2;
var DEFAULT_RENDERED_WINDOWS_BEHIND = 2;
var DetailsListBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DetailsListBase, _super);
    function DetailsListBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._header = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._groupedList = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._list = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._selectionZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._sumColumnWidths = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (columns) {
            var totalWidth = 0;
            columns.forEach(function (column) { return (totalWidth += column.calculatedWidth || column.minWidth); });
            return totalWidth;
        });
        _this._onRenderRow = function (props, defaultRender) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DetailsList_DetailsRow__WEBPACK_IMPORTED_MODULE_6__["DetailsRow"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        };
        _this._onRenderDetailsHeader = function (detailsHeaderProps, defaultRender) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DetailsList_DetailsHeader__WEBPACK_IMPORTED_MODULE_4__["DetailsHeader"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, detailsHeaderProps));
        };
        _this._onRenderDetailsFooter = function (detailsFooterProps, defaultRender) {
            return null;
        };
        _this._onRenderListCell = function (nestingDepth) {
            return function (item, itemIndex) {
                return _this._onRenderCell(nestingDepth, item, itemIndex);
            };
        };
        _this._onRenderCell = function (nestingDepth, item, index) {
            var _a = _this.props, compact = _a.compact, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.rowElementEventMap, onRenderMissingItem = _a.onRenderMissingItem, onRenderItemColumn = _a.onRenderItemColumn, getCellValueKey = _a.getCellValueKey, _b = _a.onRenderRow, onRenderRow = _b === void 0 ? _this._onRenderRow : _b, _c = _a.selectionMode, selectionMode = _c === void 0 ? _this._selection.mode : _c, viewport = _a.viewport, checkboxVisibility = _a.checkboxVisibility, getRowAriaLabel = _a.getRowAriaLabel, getRowAriaDescribedBy = _a.getRowAriaDescribedBy, checkButtonAriaLabel = _a.checkButtonAriaLabel, checkboxCellClassName = _a.checkboxCellClassName, groupProps = _a.groupProps, useReducedRowRenderer = _a.useReducedRowRenderer, indentWidth = _a.indentWidth, _d = _a.cellStyleProps, cellStyleProps = _d === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__["DEFAULT_CELL_STYLE_PROPS"] : _d, onRenderCheckbox = _a.onRenderCheckbox, enableUpdateAnimations = _a.enableUpdateAnimations, useFastIcons = _a.useFastIcons;
            var collapseAllVisibility = groupProps && groupProps.collapseAllVisibility;
            var selection = _this._selection;
            var dragDropHelper = _this._dragDropHelper;
            var columns = _this.state.adjustedColumns;
            var rowProps = {
                item: item,
                itemIndex: index,
                compact: compact,
                columns: columns,
                groupNestingDepth: nestingDepth,
                selectionMode: selectionMode,
                selection: selection,
                onDidMount: _this._onRowDidMount,
                onWillUnmount: _this._onRowWillUnmount,
                onRenderItemColumn: onRenderItemColumn,
                getCellValueKey: getCellValueKey,
                eventsToRegister: eventsToRegister,
                dragDropEvents: dragDropEvents,
                dragDropHelper: dragDropHelper,
                viewport: viewport,
                checkboxVisibility: checkboxVisibility,
                collapseAllVisibility: collapseAllVisibility,
                getRowAriaLabel: getRowAriaLabel,
                getRowAriaDescribedBy: getRowAriaDescribedBy,
                checkButtonAriaLabel: checkButtonAriaLabel,
                checkboxCellClassName: checkboxCellClassName,
                useReducedRowRenderer: useReducedRowRenderer,
                indentWidth: indentWidth,
                cellStyleProps: cellStyleProps,
                onRenderDetailsCheckbox: onRenderCheckbox,
                enableUpdateAnimations: enableUpdateAnimations,
                rowWidth: _this._sumColumnWidths(columns),
                useFastIcons: useFastIcons
            };
            if (!item) {
                if (onRenderMissingItem) {
                    return onRenderMissingItem(index, rowProps);
                }
                return null;
            }
            return onRenderRow(rowProps, _this._onRenderRow);
        };
        _this._onGroupExpandStateChanged = function (isSomeGroupExpanded) {
            _this.setState({ isSomeGroupExpanded: isSomeGroupExpanded });
        };
        _this._onColumnIsSizingChanged = function (column, isSizing) {
            _this.setState({ isSizing: isSizing });
        };
        _this._onHeaderKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down) {
                if (_this._focusZone.current && _this._focusZone.current.focus()) {
                    // select the first item in list after down arrow key event
                    // only if nothing was selected; otherwise start with the already-selected item
                    if (_this._selection.getSelectedIndices().length === 0) {
                        _this._selection.setIndexSelected(0, true, false);
                    }
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        _this._onContentKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up && !ev.altKey) {
                if (_this._header.current && _this._header.current.focus()) {
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        _this._onRowDidMount = function (row) {
            var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;
            var itemKey = _this._getItemKey(item, itemIndex);
            _this._activeRows[itemKey] = row; // this is used for column auto resize
            _this._setFocusToRowIfPending(row);
            var onRowDidMount = _this.props.onRowDidMount;
            if (onRowDidMount) {
                onRowDidMount(item, itemIndex);
            }
        };
        _this._onRowWillUnmount = function (row) {
            var onRowWillUnmount = _this.props.onRowWillUnmount;
            var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;
            var itemKey = _this._getItemKey(item, itemIndex);
            delete _this._activeRows[itemKey];
            if (onRowWillUnmount) {
                onRowWillUnmount(item, itemIndex);
            }
        };
        _this._onToggleCollapse = function (collapsed) {
            _this.setState({
                isCollapsed: collapsed
            });
            if (_this._groupedList.current) {
                _this._groupedList.current.toggleCollapseAll(collapsed);
            }
        };
        _this._onColumnDragEnd = function (props, event) {
            var columnReorderOptions = _this.props.columnReorderOptions;
            var finalDropLocation = _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ColumnDragEndLocation"].outside;
            if (columnReorderOptions && columnReorderOptions.onDragEnd) {
                if (props.dropLocation && props.dropLocation !== _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ColumnDragEndLocation"].header) {
                    finalDropLocation = props.dropLocation;
                }
                else if (_this._root.current) {
                    var clientRect = _this._root.current.getBoundingClientRect();
                    if (event.clientX > clientRect.left &&
                        event.clientX < clientRect.right &&
                        event.clientY > clientRect.top &&
                        event.clientY < clientRect.bottom) {
                        finalDropLocation = _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ColumnDragEndLocation"].surface;
                    }
                }
                columnReorderOptions.onDragEnd(finalDropLocation);
            }
        };
        _this._onColumnResized = function (resizingColumn, newWidth, resizingColumnIndex) {
            var newCalculatedWidth = Math.max(resizingColumn.minWidth || MIN_COLUMN_WIDTH, newWidth);
            if (_this.props.onColumnResize) {
                _this.props.onColumnResize(resizingColumn, newCalculatedWidth, resizingColumnIndex);
            }
            _this._rememberCalculatedWidth(resizingColumn, newCalculatedWidth);
            _this._adjustColumns(_this.props, true, resizingColumnIndex);
            _this.setState({
                version: {}
            });
        };
        /**
         * Callback function when double clicked on the details header column resizer
         * which will measure the column cells of all the active rows and resize the
         * column to the max cell width.
         *
         * @param column - double clicked column definition
         * @param columnIndex - double clicked column index
         * TODO: min width 100 should be changed to const value and should be consistent with the
         * value used on _onSizerMove method in DetailsHeader
         */
        _this._onColumnAutoResized = function (column, columnIndex) {
            var max = 0;
            var count = 0;
            var totalCount = Object.keys(_this._activeRows).length;
            for (var key in _this._activeRows) {
                if (_this._activeRows.hasOwnProperty(key)) {
                    var currentRow = _this._activeRows[key];
                    currentRow.measureCell(columnIndex, function (width) {
                        max = Math.max(max, width);
                        count++;
                        if (count === totalCount) {
                            _this._onColumnResized(column, max, columnIndex);
                        }
                    });
                }
            }
        };
        /**
         * Call back function when an element in FocusZone becomes active. It will translate it into item
         * and call onActiveItemChanged callback if specified.
         *
         * @param row - element that became active in Focus Zone
         * @param focus - event from Focus Zone
         */
        _this._onActiveRowChanged = function (el, ev) {
            var _a = _this.props, items = _a.items, onActiveItemChanged = _a.onActiveItemChanged;
            if (!el) {
                return;
            }
            // Check and assign index only if the event was raised from any DetailsRow element
            if (el.getAttribute('data-item-index')) {
                var index = Number(el.getAttribute('data-item-index'));
                if (index >= 0) {
                    if (onActiveItemChanged) {
                        onActiveItemChanged(items[index], index, ev);
                    }
                    _this.setState({
                        focusedItemIndex: index
                    });
                }
            }
        };
        _this._onBlur = function (event) {
            _this.setState({
                focusedItemIndex: -1
            });
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeFocusRects"])();
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["Async"](_this);
        _this._activeRows = {};
        _this._columnOverrides = {};
        _this.state = {
            focusedItemIndex: -1,
            lastWidth: 0,
            adjustedColumns: _this._getAdjustedColumns(props),
            isSizing: false,
            isDropping: false,
            isCollapsed: props.groupProps && props.groupProps.isAllGroupsCollapsed,
            isSomeGroupExpanded: props.groupProps && !props.groupProps.isAllGroupsCollapsed,
            version: {}
        };
        _this._selection =
            props.selection ||
                new _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["Selection"]({
                    onSelectionChanged: undefined,
                    getKey: props.getKey,
                    selectionMode: props.selectionMode
                });
        if (!_this.props.disableSelectionZone) {
            _this._selection.setItems(props.items, false);
        }
        _this._dragDropHelper = props.dragDropEvents
            ? new _utilities_dragdrop_DragDropHelper__WEBPACK_IMPORTED_MODULE_9__["DragDropHelper"]({
                selection: _this._selection,
                minimumPixelsForDrag: props.minimumPixelsForDrag
            })
            : undefined;
        _this._initialFocusedIndex = props.initialFocusedIndex;
        return _this;
    }
    DetailsListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {
        this._list.current && this._list.current.scrollToIndex(index, measureItem, scrollToMode);
        this._groupedList.current && this._groupedList.current.scrollToIndex(index, measureItem, scrollToMode);
    };
    DetailsListBase.prototype.focusIndex = function (index, forceIntoFirstElement, measureItem, scrollToMode) {
        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }
        var item = this.props.items[index];
        if (item) {
            this.scrollToIndex(index, measureItem, scrollToMode);
            var itemKey = this._getItemKey(item, index);
            var row = this._activeRows[itemKey];
            if (row) {
                this._setFocusToRow(row, forceIntoFirstElement);
            }
        }
    };
    DetailsListBase.prototype.getStartItemIndexInView = function () {
        if (this._list && this._list.current) {
            return this._list.current.getStartItemIndexInView();
        }
        else if (this._groupedList && this._groupedList.current) {
            return this._groupedList.current.getStartItemIndexInView();
        }
        return 0;
    };
    DetailsListBase.prototype.componentWillUnmount = function () {
        if (this._dragDropHelper) {
            // TODO If the DragDropHelper was passed via props, this will dispose it, which is incorrect behavior.
            this._dragDropHelper.dispose();
        }
        this._async.dispose();
    };
    DetailsListBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        if (this._initialFocusedIndex !== undefined) {
            var item = this.props.items[this._initialFocusedIndex];
            if (item) {
                var itemKey = this._getItemKey(item, this._initialFocusedIndex);
                var row = this._activeRows[itemKey];
                if (row) {
                    this._setFocusToRowIfPending(row);
                }
            }
        }
        if (this.props.items !== prevProps.items &&
            this.props.items.length > 0 &&
            this.state.focusedItemIndex !== -1 &&
            !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._root.current, document.activeElement, false)) {
            // Item set has changed and previously-focused item is gone.
            // Set focus to item at index of previously-focused item if it is in range,
            // else set focus to the last item.
            var index = this.state.focusedItemIndex < this.props.items.length ? this.state.focusedItemIndex : this.props.items.length - 1;
            var item = this.props.items[index];
            var itemKey = this._getItemKey(item, this.state.focusedItemIndex);
            var row = this._activeRows[itemKey];
            if (row) {
                this._setFocusToRow(row);
            }
            else {
                this._initialFocusedIndex = index;
            }
        }
        if (this.props.onDidUpdate) {
            this.props.onDidUpdate(this);
        }
    };
    // tslint:disable-next-line function-name
    DetailsListBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        var _a = this.props, checkboxVisibility = _a.checkboxVisibility, items = _a.items, setKey = _a.setKey, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, columns = _a.columns, viewport = _a.viewport, compact = _a.compact, dragDropEvents = _a.dragDropEvents;
        var _c = (this.props.groupProps || {}).isAllGroupsCollapsed, isAllGroupsCollapsed = _c === void 0 ? undefined : _c;
        var newViewportWidth = (newProps.viewport && newProps.viewport.width) || 0;
        var oldViewportWidth = (viewport && viewport.width) || 0;
        var shouldResetSelection = newProps.setKey !== setKey || newProps.setKey === undefined;
        var shouldForceUpdates = false;
        if (newProps.layoutMode !== this.props.layoutMode) {
            shouldForceUpdates = true;
        }
        if (shouldResetSelection) {
            this._initialFocusedIndex = newProps.initialFocusedIndex;
            // reset focusedItemIndex when setKey changes
            this.setState({
                focusedItemIndex: this._initialFocusedIndex !== undefined ? this._initialFocusedIndex : -1
            });
        }
        if (!this.props.disableSelectionZone && newProps.items !== items) {
            this._selection.setItems(newProps.items, shouldResetSelection);
        }
        if (newProps.checkboxVisibility !== checkboxVisibility ||
            newProps.columns !== columns ||
            newViewportWidth !== oldViewportWidth ||
            newProps.compact !== compact) {
            shouldForceUpdates = true;
        }
        this._adjustColumns(newProps, true);
        if (newProps.selectionMode !== selectionMode) {
            shouldForceUpdates = true;
        }
        if (isAllGroupsCollapsed === undefined && (newProps.groupProps && newProps.groupProps.isAllGroupsCollapsed !== undefined)) {
            this.setState({
                isCollapsed: newProps.groupProps.isAllGroupsCollapsed,
                isSomeGroupExpanded: !newProps.groupProps.isAllGroupsCollapsed
            });
        }
        if (newProps.dragDropEvents !== dragDropEvents) {
            this._dragDropHelper && this._dragDropHelper.dispose();
            this._dragDropHelper = newProps.dragDropEvents
                ? new _utilities_dragdrop_DragDropHelper__WEBPACK_IMPORTED_MODULE_9__["DragDropHelper"]({
                    selection: this._selection,
                    minimumPixelsForDrag: newProps.minimumPixelsForDrag
                })
                : undefined;
            shouldForceUpdates = true;
        }
        if (shouldForceUpdates) {
            this.setState({
                version: {}
            });
        }
    };
    DetailsListBase.prototype.render = function () {
        var _a = this.props, ariaLabelForListHeader = _a.ariaLabelForListHeader, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, className = _a.className, checkboxVisibility = _a.checkboxVisibility, compact = _a.compact, constrainMode = _a.constrainMode, dragDropEvents = _a.dragDropEvents, groups = _a.groups, groupProps = _a.groupProps, indentWidth = _a.indentWidth, items = _a.items, isPlaceholderData = _a.isPlaceholderData, isHeaderVisible = _a.isHeaderVisible, layoutMode = _a.layoutMode, onItemInvoked = _a.onItemInvoked, onItemContextMenu = _a.onItemContextMenu, onColumnHeaderClick = _a.onColumnHeaderClick, onColumnHeaderContextMenu = _a.onColumnHeaderContextMenu, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, selectionPreservedOnEmptyClick = _a.selectionPreservedOnEmptyClick, selectionZoneProps = _a.selectionZoneProps, ariaLabel = _a.ariaLabel, ariaLabelForGrid = _a.ariaLabelForGrid, rowElementEventMap = _a.rowElementEventMap, _c = _a.shouldApplyApplicationRole, shouldApplyApplicationRole = _c === void 0 ? false : _c, getKey = _a.getKey, listProps = _a.listProps, usePageCache = _a.usePageCache, onShouldVirtualize = _a.onShouldVirtualize, viewport = _a.viewport, minimumPixelsForDrag = _a.minimumPixelsForDrag, getGroupHeight = _a.getGroupHeight, styles = _a.styles, theme = _a.theme, _d = _a.cellStyleProps, cellStyleProps = _d === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__["DEFAULT_CELL_STYLE_PROPS"] : _d, onRenderCheckbox = _a.onRenderCheckbox, useFastIcons = _a.useFastIcons;
        var _e = this.state, adjustedColumns = _e.adjustedColumns, isCollapsed = _e.isCollapsed, isSizing = _e.isSizing, isSomeGroupExpanded = _e.isSomeGroupExpanded;
        var _f = this, selection = _f._selection, dragDropHelper = _f._dragDropHelper;
        var groupNestingDepth = this._getGroupNestingDepth();
        var additionalListProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ renderedWindowsAhead: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_AHEAD, renderedWindowsBehind: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_BEHIND, getKey: getKey, version: this.state.version }, listProps);
        var selectAllVisibility = _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].none; // for SelectionMode.none
        if (selectionMode === _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionMode"].single) {
            selectAllVisibility = _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].hidden;
        }
        if (selectionMode === _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionMode"].multiple) {
            // if isCollapsedGroupSelectVisible is false, disable select all when the list has all collapsed groups
            var isCollapsedGroupSelectVisible = groupProps && groupProps.headerProps && groupProps.headerProps.isCollapsedGroupSelectVisible;
            if (isCollapsedGroupSelectVisible === undefined) {
                isCollapsedGroupSelectVisible = true;
            }
            var isSelectAllVisible = isCollapsedGroupSelectVisible || !groups || isSomeGroupExpanded;
            selectAllVisibility = isSelectAllVisible ? _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].visible : _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].hidden;
        }
        if (checkboxVisibility === _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["CheckboxVisibility"].hidden) {
            selectAllVisibility = _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].none;
        }
        var _g = this.props, _h = _g.onRenderDetailsHeader, onRenderDetailsHeader = _h === void 0 ? this._onRenderDetailsHeader : _h, _j = _g.onRenderDetailsFooter, onRenderDetailsFooter = _j === void 0 ? this._onRenderDetailsFooter : _j;
        var detailsFooterProps = this._getDetailsFooterProps();
        var columnReorderProps = this._getColumnReorderProps();
        var rowCount = (isHeaderVisible ? 1 : 0) + Object(_utilities_groupedList_GroupedListUtility__WEBPACK_IMPORTED_MODULE_13__["GetGroupCount"])(groups) + (items ? items.length : 0);
        var classNames = getClassNames(styles, {
            theme: theme,
            compact: compact,
            isFixed: layoutMode === _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["DetailsListLayoutMode"].fixedColumns,
            isHorizontalConstrained: constrainMode === _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ConstrainMode"].horizontalConstrained,
            className: className
        });
        var list = groups ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupedList__WEBPACK_IMPORTED_MODULE_10__["GroupedList"], { componentRef: this._groupedList, groups: groups, groupProps: groupProps ? this._getGroupProps(groupProps) : undefined, items: items, onRenderCell: this._onRenderCell, selection: selection, selectionMode: checkboxVisibility !== _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["CheckboxVisibility"].hidden ? selectionMode : _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionMode"].none, dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: rowElementEventMap, listProps: additionalListProps, onGroupExpandStateChanged: this._onGroupExpandStateChanged, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, getGroupHeight: getGroupHeight, compact: compact })) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_List__WEBPACK_IMPORTED_MODULE_11__["List"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._list, role: "presentation", items: items, onRenderCell: this._onRenderListCell(0), usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize }, additionalListProps)));
        return (
        // If shouldApplyApplicationRole is true, role application will be applied to make arrow keys work
        // with JAWS.
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._root, className: classNames.root, "data-automationid": "DetailsList", "data-is-scrollable": "false", "aria-label": ariaLabel }, (shouldApplyApplicationRole ? { role: 'application' } : {})),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "grid", "aria-label": ariaLabelForGrid, "aria-rowcount": isPlaceholderData ? -1 : rowCount, "aria-colcount": (selectAllVisibility !== _DetailsList_DetailsHeader_types__WEBPACK_IMPORTED_MODULE_5__["SelectAllVisibility"].none ? 1 : 0) + (adjustedColumns ? adjustedColumns.length : 0), "aria-readonly": "true" },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { onKeyDown: this._onHeaderKeyDown, role: "presentation", className: classNames.headerWrapper }, isHeaderVisible &&
                    onRenderDetailsHeader({
                        componentRef: this._header,
                        selectionMode: selectionMode,
                        layoutMode: layoutMode,
                        selection: selection,
                        columns: adjustedColumns,
                        onColumnClick: onColumnHeaderClick,
                        onColumnContextMenu: onColumnHeaderContextMenu,
                        onColumnResized: this._onColumnResized,
                        onColumnIsSizingChanged: this._onColumnIsSizingChanged,
                        onColumnAutoResized: this._onColumnAutoResized,
                        groupNestingDepth: groupNestingDepth,
                        isAllCollapsed: isCollapsed,
                        onToggleCollapseAll: this._onToggleCollapse,
                        ariaLabel: ariaLabelForListHeader,
                        ariaLabelForSelectAllCheckbox: ariaLabelForSelectAllCheckbox,
                        ariaLabelForSelectionColumn: ariaLabelForSelectionColumn,
                        selectAllVisibility: selectAllVisibility,
                        collapseAllVisibility: groupProps && groupProps.collapseAllVisibility,
                        viewport: viewport,
                        columnReorderProps: columnReorderProps,
                        minimumPixelsForDrag: minimumPixelsForDrag,
                        cellStyleProps: cellStyleProps,
                        checkboxVisibility: checkboxVisibility,
                        indentWidth: indentWidth,
                        onRenderDetailsCheckbox: onRenderCheckbox,
                        rowWidth: this._sumColumnWidths(this.state.adjustedColumns),
                        useFastIcons: useFastIcons
                    }, this._onRenderDetailsHeader)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { onKeyDown: this._onContentKeyDown, role: "presentation", className: classNames.contentWrapper },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_7__["FocusZone"], { componentRef: this._focusZone, className: classNames.focusZone, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_7__["FocusZoneDirection"].vertical, isInnerZoneKeystroke: isRightArrow, onActiveElementChanged: this._onActiveRowChanged, onBlur: this._onBlur }, !this.props.disableSelectionZone ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._selectionZone, selection: selection, selectionPreservedOnEmptyClick: selectionPreservedOnEmptyClick, selectionMode: selectionMode, onItemInvoked: onItemInvoked, onItemContextMenu: onItemContextMenu, enterModalOnTouch: this.props.enterModalSelectionOnTouch }, selectionZoneProps || {}), list)) : (list))),
                onRenderDetailsFooter(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, detailsFooterProps), this._onRenderDetailsFooter))));
    };
    DetailsListBase.prototype.forceUpdate = function () {
        _super.prototype.forceUpdate.call(this);
        this._forceListUpdates();
    };
    DetailsListBase.prototype._getGroupNestingDepth = function () {
        var groups = this.props.groups;
        var level = 0;
        var groupsInLevel = groups;
        while (groupsInLevel && groupsInLevel.length > 0) {
            level++;
            groupsInLevel = groupsInLevel[0].children;
        }
        return level;
    };
    DetailsListBase.prototype._setFocusToRowIfPending = function (row) {
        var itemIndex = row.props.itemIndex;
        if (this._initialFocusedIndex !== undefined && itemIndex === this._initialFocusedIndex) {
            this._setFocusToRow(row);
            delete this._initialFocusedIndex;
        }
    };
    DetailsListBase.prototype._setFocusToRow = function (row, forceIntoFirstElement) {
        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }
        if (this._selectionZone.current) {
            this._selectionZone.current.ignoreNextFocus();
        }
        this._async.setTimeout(function () {
            row.focus(forceIntoFirstElement);
        }, 0);
    };
    DetailsListBase.prototype._forceListUpdates = function () {
        if (this._groupedList.current) {
            this._groupedList.current.forceUpdate();
        }
        if (this._list.current) {
            this._list.current.forceUpdate();
        }
    };
    DetailsListBase.prototype._notifyColumnsResized = function () {
        this.state.adjustedColumns.forEach(function (column) {
            if (column.onColumnResize) {
                column.onColumnResize(column.currentWidth);
            }
        });
    };
    DetailsListBase.prototype._adjustColumns = function (newProps, forceUpdate, resizingColumnIndex) {
        var adjustedColumns = this._getAdjustedColumns(newProps, forceUpdate, resizingColumnIndex);
        var viewport = this.props.viewport;
        var viewportWidth = viewport && viewport.width ? viewport.width : 0;
        if (adjustedColumns) {
            this.setState({
                adjustedColumns: adjustedColumns,
                lastWidth: viewportWidth
            }, this._notifyColumnsResized);
        }
    };
    /** Returns adjusted columns, given the viewport size and layout mode. */
    DetailsListBase.prototype._getAdjustedColumns = function (newProps, forceUpdate, resizingColumnIndex) {
        var _this = this;
        var newItems = newProps.items, layoutMode = newProps.layoutMode, selectionMode = newProps.selectionMode, viewport = newProps.viewport;
        var viewportWidth = viewport && viewport.width ? viewport.width : 0;
        var newColumns = newProps.columns;
        var columns = this.props ? this.props.columns : [];
        var lastWidth = this.state ? this.state.lastWidth : -1;
        var lastSelectionMode = this.state ? this.state.lastSelectionMode : undefined;
        if (!forceUpdate && lastWidth === viewportWidth && lastSelectionMode === selectionMode && (!columns || newColumns === columns)) {
            return [];
        }
        newColumns = newColumns || buildColumns(newItems, true);
        var adjustedColumns;
        if (layoutMode === _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["DetailsListLayoutMode"].fixedColumns) {
            adjustedColumns = this._getFixedColumns(newColumns);
            // Preserve adjusted column calculated widths.
            adjustedColumns.forEach(function (column) {
                _this._rememberCalculatedWidth(column, column.calculatedWidth);
            });
        }
        else {
            if (resizingColumnIndex !== undefined) {
                adjustedColumns = this._getJustifiedColumnsAfterResize(newColumns, viewportWidth, newProps, resizingColumnIndex);
            }
            else {
                adjustedColumns = this._getJustifiedColumns(newColumns, viewportWidth, newProps, 0);
            }
            adjustedColumns.forEach(function (column) {
                _this._getColumnOverride(column.key).currentWidth = column.calculatedWidth;
            });
        }
        return adjustedColumns;
    };
    /** Builds a set of columns based on the given columns mixed with the current overrides. */
    DetailsListBase.prototype._getFixedColumns = function (newColumns) {
        var _this = this;
        return newColumns.map(function (column) {
            var newColumn = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, column, _this._columnOverrides[column.key]);
            if (!newColumn.calculatedWidth) {
                newColumn.calculatedWidth = newColumn.maxWidth || newColumn.minWidth || MIN_COLUMN_WIDTH;
            }
            return newColumn;
        });
    };
    DetailsListBase.prototype._getJustifiedColumnsAfterResize = function (newColumns, viewportWidth, props, resizingColumnIndex) {
        var _this = this;
        var fixedColumns = newColumns.slice(0, resizingColumnIndex);
        fixedColumns.forEach(function (column) { return (column.calculatedWidth = _this._getColumnOverride(column.key).currentWidth); });
        var fixedWidth = fixedColumns.reduce(function (total, column, i) { return total + getPaddedWidth(column, i === 0, props); }, 0);
        var remainingColumns = newColumns.slice(resizingColumnIndex);
        var remainingWidth = viewportWidth - fixedWidth;
        return fixedColumns.concat(this._getJustifiedColumns(remainingColumns, remainingWidth, props, resizingColumnIndex));
    };
    /** Builds a set of columns to fix within the viewport width. */
    DetailsListBase.prototype._getJustifiedColumns = function (newColumns, viewportWidth, props, firstIndex) {
        var _this = this;
        var _a = props.selectionMode, selectionMode = _a === void 0 ? this._selection.mode : _a, checkboxVisibility = props.checkboxVisibility;
        var rowCheckWidth = selectionMode !== _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionMode"].none && checkboxVisibility !== _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["CheckboxVisibility"].hidden ? _DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_15__["CHECK_CELL_WIDTH"] : 0;
        var groupExpandWidth = this._getGroupNestingDepth() * _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_16__["SPACER_WIDTH"];
        var totalWidth = 0; // offset because we have one less inner padding.
        var availableWidth = viewportWidth - (rowCheckWidth + groupExpandWidth);
        var adjustedColumns = newColumns.map(function (column, i) {
            var newColumn = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, column, { calculatedWidth: column.minWidth || MIN_COLUMN_WIDTH }, _this._columnOverrides[column.key]);
            var isFirst = i + firstIndex === 0;
            totalWidth += getPaddedWidth(newColumn, isFirst, props);
            return newColumn;
        });
        var lastIndex = adjustedColumns.length - 1;
        // Shrink or remove collapsable columns.
        while (lastIndex > 0 && totalWidth > availableWidth) {
            var column = adjustedColumns[lastIndex];
            var minWidth = column.minWidth || MIN_COLUMN_WIDTH;
            var overflowWidth = totalWidth - availableWidth;
            if (column.calculatedWidth - minWidth >= overflowWidth || !(column.isCollapsable || column.isCollapsible)) {
                var originalWidth = column.calculatedWidth;
                column.calculatedWidth = Math.max(column.calculatedWidth - overflowWidth, minWidth);
                totalWidth -= originalWidth - column.calculatedWidth;
            }
            else {
                totalWidth -= getPaddedWidth(column, false, props);
                adjustedColumns.splice(lastIndex, 1);
            }
            lastIndex--;
        }
        // Then expand columns starting at the beginning, until we've filled the width.
        for (var i = 0; i < adjustedColumns.length && totalWidth < availableWidth; i++) {
            var column = adjustedColumns[i];
            var isLast = i === adjustedColumns.length - 1;
            var overrides = this._columnOverrides[column.key];
            if (overrides && overrides.calculatedWidth && !isLast) {
                continue;
            }
            var spaceLeft = availableWidth - totalWidth;
            var increment = void 0;
            if (isLast) {
                increment = spaceLeft;
            }
            else {
                var maxWidth = column.maxWidth;
                var minWidth = column.minWidth || maxWidth || MIN_COLUMN_WIDTH;
                increment = maxWidth ? Math.min(spaceLeft, maxWidth - minWidth) : spaceLeft;
            }
            column.calculatedWidth = column.calculatedWidth + increment;
            totalWidth += increment;
        }
        return adjustedColumns;
    };
    DetailsListBase.prototype._rememberCalculatedWidth = function (column, newCalculatedWidth) {
        var overrides = this._getColumnOverride(column.key);
        overrides.calculatedWidth = newCalculatedWidth;
        overrides.currentWidth = newCalculatedWidth;
    };
    DetailsListBase.prototype._getColumnOverride = function (key) {
        return (this._columnOverrides[key] = this._columnOverrides[key] || {});
    };
    DetailsListBase.prototype._getItemKey = function (item, itemIndex) {
        var getKey = this.props.getKey;
        var itemKey = undefined;
        if (item) {
            itemKey = item.key;
        }
        if (getKey) {
            itemKey = getKey(item, itemIndex);
        }
        if (!itemKey) {
            itemKey = itemIndex;
        }
        return itemKey;
    };
    DetailsListBase.prototype._getDetailsFooterProps = function () {
        var columns = this.state.adjustedColumns;
        var _a = this.props, viewport = _a.viewport, checkboxVisibility = _a.checkboxVisibility, indentWidth = _a.indentWidth, _b = _a.cellStyleProps, cellStyleProps = _b === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__["DEFAULT_CELL_STYLE_PROPS"] : _b, _c = _a.selectionMode, selectionMode = _c === void 0 ? this._selection.mode : _c;
        return {
            columns: columns,
            groupNestingDepth: this._getGroupNestingDepth(),
            selection: this._selection,
            selectionMode: selectionMode,
            viewport: viewport,
            checkboxVisibility: checkboxVisibility,
            indentWidth: indentWidth,
            cellStyleProps: cellStyleProps
        };
    };
    DetailsListBase.prototype._getColumnReorderProps = function () {
        var columnReorderOptions = this.props.columnReorderOptions;
        if (columnReorderOptions) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, columnReorderOptions, { onColumnDragEnd: this._onColumnDragEnd });
        }
    };
    DetailsListBase.prototype._getGroupProps = function (detailsGroupProps) {
        var _this = this;
        var onRenderDetailsGroupFooter = detailsGroupProps.onRenderFooter, onRenderDetailsGroupHeader = detailsGroupProps.onRenderHeader;
        var columns = this.state.adjustedColumns;
        var _a = this.props, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, viewport = _a.viewport, _c = _a.cellStyleProps, cellStyleProps = _c === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__["DEFAULT_CELL_STYLE_PROPS"] : _c, checkboxVisibility = _a.checkboxVisibility, indentWidth = _a.indentWidth;
        var groupNestingDepth = this._getGroupNestingDepth();
        var onRenderFooter = onRenderDetailsGroupFooter
            ? function (props, defaultRender) {
                return onRenderDetailsGroupFooter(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { columns: columns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: _this._selection, selectionMode: selectionMode, viewport: viewport, checkboxVisibility: checkboxVisibility,
                    cellStyleProps: cellStyleProps }), defaultRender);
            }
            : undefined;
        var onRenderHeader = onRenderDetailsGroupHeader
            ? function (props, defaultRender) {
                return onRenderDetailsGroupHeader(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { columns: columns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: _this._selection, selectionMode: selectionMode, viewport: viewport, checkboxVisibility: checkboxVisibility,
                    cellStyleProps: cellStyleProps }), defaultRender);
            }
            : undefined;
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, detailsGroupProps, { onRenderFooter: onRenderFooter,
            onRenderHeader: onRenderHeader });
    };
    DetailsListBase.defaultProps = {
        layoutMode: _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["DetailsListLayoutMode"].justified,
        selectionMode: _utilities_selection_index__WEBPACK_IMPORTED_MODULE_8__["SelectionMode"].multiple,
        constrainMode: _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ConstrainMode"].horizontalConstrained,
        checkboxVisibility: _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["CheckboxVisibility"].onHover,
        isHeaderVisible: true,
        compact: false,
        useFastIcons: true
    };
    DetailsListBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withViewport__WEBPACK_IMPORTED_MODULE_12__["withViewport"]
    ], DetailsListBase);
    return DetailsListBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

function buildColumns(items, canResizeColumns, onColumnClick, sortedColumnKey, isSortedDescending, groupedColumnKey, isMultiline) {
    var columns = [];
    if (items && items.length) {
        var firstItem = items[0];
        for (var propName in firstItem) {
            if (firstItem.hasOwnProperty(propName)) {
                columns.push({
                    key: propName,
                    name: propName,
                    fieldName: propName,
                    minWidth: MIN_COLUMN_WIDTH,
                    maxWidth: 300,
                    isCollapsable: !!columns.length,
                    isCollapsible: !!columns.length,
                    isMultiline: isMultiline === undefined ? false : isMultiline,
                    isSorted: sortedColumnKey === propName,
                    isSortedDescending: !!isSortedDescending,
                    isRowHeader: false,
                    columnActionsMode: _DetailsList_DetailsList_types__WEBPACK_IMPORTED_MODULE_3__["ColumnActionsMode"].clickable,
                    isResizable: canResizeColumns,
                    onColumnClick: onColumnClick,
                    isGrouped: groupedColumnKey === propName
                });
            }
        }
    }
    return columns;
}
function isRightArrow(event) {
    return event.which === Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTLSafeKeyCode"])(_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right);
}
function getPaddedWidth(column, isFirst, props) {
    var _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_14__["DEFAULT_CELL_STYLE_PROPS"] : _a;
    return (column.calculatedWidth +
        cellStyleProps.cellLeftPadding +
        cellStyleProps.cellRightPadding +
        (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0));
}


/***/ }),

/***/ "./lib/components/DetailsList/DetailsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsList", function() { return DetailsList; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/DetailsList.base.js");
/* harmony import */ var _DetailsList_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsList.styles.js");



var DetailsList = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DetailsList_base__WEBPACK_IMPORTED_MODULE_1__["DetailsListBase"], _DetailsList_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'DetailsList'
});


/***/ }),

/***/ "./lib/components/DetailsList/DetailsList.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-DetailsList',
    compact: 'ms-DetailsList--Compact',
    contentWrapper: 'ms-DetailsList-contentWrapper',
    headerWrapper: 'ms-DetailsList-headerWrapper',
    isFixed: 'is-fixed',
    isHorizontalConstrained: 'is-horizontalConstrained',
    listCell: 'ms-List-cell'
};
var getStyles = function (props) {
    var _a, _b;
    var theme = props.theme, className = props.className, isHorizontalConstrained = props.isHorizontalConstrained, compact = props.compact, isFixed = props.isFixed;
    var semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.small,
            {
                position: 'relative',
                background: semanticColors.listBackground,
                color: semanticColors.listText,
                selectors: (_a = {},
                    _a["& ." + classNames.listCell] = {
                        minHeight: 38,
                        wordBreak: 'break-word'
                    },
                    _a)
            },
            isFixed && classNames.isFixed,
            compact && [
                classNames.compact,
                {
                    selectors: (_b = {},
                        _b["." + classNames.listCell] = {
                            minHeight: 32
                        },
                        _b)
                }
            ],
            isHorizontalConstrained && [
                classNames.isHorizontalConstrained,
                {
                    overflowX: 'auto',
                    overflowY: 'visible',
                    WebkitOverflowScrolling: 'touch'
                }
            ],
            className
        ],
        focusZone: [
            {
                display: 'inline-block',
                minWidth: '100%',
                minHeight: 1
            }
        ],
        headerWrapper: classNames.headerWrapper,
        contentWrapper: classNames.contentWrapper
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/DetailsList.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnActionsMode", function() { return ColumnActionsMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConstrainMode", function() { return ConstrainMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnDragEndLocation", function() { return ColumnDragEndLocation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsListLayoutMode", function() { return DetailsListLayoutMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxVisibility", function() { return CheckboxVisibility; });
/**
 * Enum to describe how a particular column header behaves.... This enum is used to
 * to specify the property IColumn:columnActionsMode.
 * If IColumn:columnActionsMode is undefined, then it's equivalent to ColumnActionsMode.clickable
 * {@docCategory DetailsList}
 */
var ColumnActionsMode;
(function (ColumnActionsMode) {
    /**
     * Renders the column header as disabled.
     */
    ColumnActionsMode[ColumnActionsMode["disabled"] = 0] = "disabled";
    /**
     * Renders the column header is clickable.
     */
    ColumnActionsMode[ColumnActionsMode["clickable"] = 1] = "clickable";
    /**
     * Renders the column header ias clickable and displays the dropdown cheveron.
     */
    ColumnActionsMode[ColumnActionsMode["hasDropdown"] = 2] = "hasDropdown";
})(ColumnActionsMode || (ColumnActionsMode = {}));
/**
 * {@docCategory DetailsList}
 */
var ConstrainMode;
(function (ConstrainMode) {
    /** If specified, lets the content grow which allows the page to manage scrolling. */
    ConstrainMode[ConstrainMode["unconstrained"] = 0] = "unconstrained";
    /**
     * If specified, constrains the list to the given layout space.
     */
    ConstrainMode[ConstrainMode["horizontalConstrained"] = 1] = "horizontalConstrained";
})(ConstrainMode || (ConstrainMode = {}));
/**
 * Enum to describe where the column has been dropped, after starting the drag
 * {@docCategory DetailsList}
 */
var ColumnDragEndLocation;
(function (ColumnDragEndLocation) {
    /**
     * Drag ended outside of current list
     */
    ColumnDragEndLocation[ColumnDragEndLocation["outside"] = 0] = "outside";
    /**
     * Drag ended on current List
     */
    ColumnDragEndLocation[ColumnDragEndLocation["surface"] = 1] = "surface";
    /**
     * Drag ended on Header
     */
    ColumnDragEndLocation[ColumnDragEndLocation["header"] = 2] = "header";
})(ColumnDragEndLocation || (ColumnDragEndLocation = {}));
/**
 * {@docCategory DetailsList}
 */
var DetailsListLayoutMode;
(function (DetailsListLayoutMode) {
    /**
     * Lets the user resize columns and makes not attempt to fit them.
     */
    DetailsListLayoutMode[DetailsListLayoutMode["fixedColumns"] = 0] = "fixedColumns";
    /**
     * Manages which columns are visible, tries to size them according to their min/max rules and drops
     * off columns that can't fit and have isCollapsible set.
     */
    DetailsListLayoutMode[DetailsListLayoutMode["justified"] = 1] = "justified";
})(DetailsListLayoutMode || (DetailsListLayoutMode = {}));
/**
 * {@docCategory DetailsList}
 */
var CheckboxVisibility;
(function (CheckboxVisibility) {
    /**
     * Visible on hover.
     */
    CheckboxVisibility[CheckboxVisibility["onHover"] = 0] = "onHover";
    /**
     * Visible always.
     */
    CheckboxVisibility[CheckboxVisibility["always"] = 1] = "always";
    /**
     * Hide checkboxes.
     */
    CheckboxVisibility[CheckboxVisibility["hidden"] = 2] = "hidden";
})(CheckboxVisibility || (CheckboxVisibility = {}));


/***/ }),

/***/ "./lib/components/DetailsList/DetailsRow.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowBase", function() { return DetailsRowBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony import */ var _DetailsRowCheck__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.js");
/* harmony import */ var _GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");
/* harmony import */ var _DetailsRowFields__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/DetailsList/DetailsRowFields.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/selection/interfaces.js");
/* harmony import */ var _GroupedList__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/GroupedList.js");












var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';
var NO_COLUMNS = [];
var DetailsRowBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DetailsRowBase, _super);
    function DetailsRowBase(props) {
        var _this = _super.call(this, props) || this;
        _this._cellMeasurer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onSelectionChanged = function () {
            var selectionState = _this._getSelectionState(_this.props);
            if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(selectionState, _this.state.selectionState)) {
                _this.setState({
                    selectionState: selectionState
                });
            }
        };
        _this._onRootRef = function (focusZone) {
            if (focusZone) {
                // Need to resolve the actual DOM node, not the component. The element itself will be used for drag/drop and focusing.
                _this._root = react_dom__WEBPACK_IMPORTED_MODULE_2__["findDOMNode"](focusZone);
            }
            else {
                _this._root = undefined;
            }
        };
        /**
         * update isDropping state based on the input value, which is used to change style during drag and drop
         *
         * when change to true, that means drag enter. we will add default dropping class name
         * or the custom dropping class name (return result from onDragEnter) to the root elemet.
         *
         * when change to false, that means drag leave. we will remove the dropping class name from root element.
         *
         * @param newValue - New isDropping state value
         * @param event - The event trigger dropping state change which can be dragenter, dragleave etc
         */
        _this._updateDroppingState = function (newValue, event) {
            var isDropping = _this.state.isDropping;
            var _a = _this.props, dragDropEvents = _a.dragDropEvents, item = _a.item;
            if (!newValue) {
                if (dragDropEvents.onDragLeave) {
                    dragDropEvents.onDragLeave(item, event);
                }
            }
            else if (dragDropEvents.onDragEnter) {
                _this._droppingClassNames = dragDropEvents.onDragEnter(item, event);
            }
            if (isDropping !== newValue) {
                _this.setState({ isDropping: newValue });
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["EventGroup"](_this);
        _this.state = {
            selectionState: _this._getSelectionState(props),
            columnMeasureInfo: undefined,
            isDropping: false
        };
        _this._droppingClassNames = '';
        return _this;
    }
    DetailsRowBase.prototype.componentDidMount = function () {
        var dragDropHelper = this.props.dragDropHelper;
        if (dragDropHelper) {
            this._dragDropSubscription = dragDropHelper.subscribe(this._root, this._events, this._getRowDragDropOptions());
        }
        this._events.on(this.props.selection, _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_9__["SELECTION_CHANGE"], this._onSelectionChanged);
        if (this.props.onDidMount && this.props.item) {
            // If the item appears later, we should wait for it before calling this method.
            this._onDidMountCalled = true;
            this.props.onDidMount(this);
        }
    };
    DetailsRowBase.prototype.componentDidUpdate = function (previousProps) {
        var state = this.state;
        var _a = this.props, item = _a.item, onDidMount = _a.onDidMount;
        var columnMeasureInfo = state.columnMeasureInfo;
        if (this.props.itemIndex !== previousProps.itemIndex ||
            this.props.item !== previousProps.item ||
            this.props.dragDropHelper !== previousProps.dragDropHelper) {
            if (this._dragDropSubscription) {
                this._dragDropSubscription.dispose();
                delete this._dragDropSubscription;
            }
            if (this.props.dragDropHelper) {
                this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root, this._events, this._getRowDragDropOptions());
            }
        }
        if (columnMeasureInfo && columnMeasureInfo.index >= 0 && this._cellMeasurer.current) {
            var newWidth = this._cellMeasurer.current.getBoundingClientRect().width;
            columnMeasureInfo.onMeasureDone(newWidth);
            this.setState({
                columnMeasureInfo: undefined
            });
        }
        if (item && onDidMount && !this._onDidMountCalled) {
            this._onDidMountCalled = true;
            onDidMount(this);
        }
    };
    DetailsRowBase.prototype.componentWillUnmount = function () {
        var _a = this.props, item = _a.item, onWillUnmount = _a.onWillUnmount;
        // Only call the onWillUnmount callback if we have an item.
        if (onWillUnmount && item) {
            onWillUnmount(this);
        }
        if (this._dragDropSubscription) {
            this._dragDropSubscription.dispose();
            delete this._dragDropSubscription;
        }
        this._events.dispose();
    };
    // tslint:disable-next-line function-name
    DetailsRowBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        this.setState({
            selectionState: this._getSelectionState(newProps)
        });
    };
    DetailsRowBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {
        if (this.props.useReducedRowRenderer) {
            var newSelectionState = this._getSelectionState(nextProps);
            if (this.state.selectionState.isSelected !== newSelectionState.isSelected) {
                return true;
            }
            return !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(this.props, nextProps);
        }
        else {
            return true;
        }
    };
    DetailsRowBase.prototype.render = function () {
        var _a = this.props, className = _a.className, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, dragDropEvents = _a.dragDropEvents, item = _a.item, itemIndex = _a.itemIndex, _c = _a.onRenderCheck, onRenderCheck = _c === void 0 ? this._onRenderCheck : _c, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, onRenderItemColumn = _a.onRenderItemColumn, getCellValueKey = _a.getCellValueKey, selectionMode = _a.selectionMode, _d = _a.rowWidth, rowWidth = _d === void 0 ? 0 : _d, checkboxVisibility = _a.checkboxVisibility, getRowAriaLabel = _a.getRowAriaLabel, getRowAriaDescribedBy = _a.getRowAriaDescribedBy, checkButtonAriaLabel = _a.checkButtonAriaLabel, checkboxCellClassName = _a.checkboxCellClassName, 
        /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */
        _e = _a.rowFieldsAs, 
        /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */
        RowFields = _e === void 0 ? _DetailsRowFields__WEBPACK_IMPORTED_MODULE_7__["DetailsRowFields"] : _e, selection = _a.selection, indentWidth = _a.indentWidth, enableUpdateAnimations = _a.enableUpdateAnimations, compact = _a.compact, theme = _a.theme, styles = _a.styles, cellsByColumn = _a.cellsByColumn, groupNestingDepth = _a.groupNestingDepth, _f = _a.useFastIcons, useFastIcons = _f === void 0 ? true : _f;
        var _g = this.state, columnMeasureInfo = _g.columnMeasureInfo, isDropping = _g.isDropping;
        var _h = this.state.selectionState, _j = _h.isSelected, isSelected = _j === void 0 ? false : _j, _k = _h.isSelectionModal, isSelectionModal = _k === void 0 ? false : _k;
        var isDraggable = dragDropEvents ? !!(dragDropEvents.canDrag && dragDropEvents.canDrag(item)) : undefined;
        var droppingClassName = isDropping ? this._droppingClassNames || DEFAULT_DROPPING_CSS_CLASS : '';
        var ariaLabel = getRowAriaLabel ? getRowAriaLabel(item) : undefined;
        var ariaDescribedBy = getRowAriaDescribedBy ? getRowAriaDescribedBy(item) : undefined;
        var canSelect = !!selection && selection.canSelectItem(item, itemIndex);
        var isContentUnselectable = selectionMode === _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_9__["SelectionMode"].multiple;
        var showCheckbox = selectionMode !== _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_9__["SelectionMode"].none && checkboxVisibility !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxVisibility"].hidden;
        var ariaSelected = selectionMode === _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_9__["SelectionMode"].none ? undefined : isSelected;
        this._classNames = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this._classNames, getClassNames(styles, {
            theme: theme,
            isSelected: isSelected,
            canSelect: !isContentUnselectable,
            anySelected: isSelectionModal,
            checkboxCellClassName: checkboxCellClassName,
            droppingClassName: droppingClassName,
            className: className,
            compact: compact,
            enableUpdateAnimations: enableUpdateAnimations
        }));
        var rowClassNames = {
            isMultiline: this._classNames.isMultiline,
            isRowHeader: this._classNames.isRowHeader,
            cell: this._classNames.cell,
            cellAnimation: this._classNames.cellAnimation,
            cellPadded: this._classNames.cellPadded,
            cellUnpadded: this._classNames.cellUnpadded,
            fields: this._classNames.fields
        };
        // Only re-assign rowClassNames when classNames have changed.
        // Otherwise, they will cause DetailsRowFields to unnecessarily
        // re-render, see https://github.com/OfficeDev/office-ui-fabric-react/pull/8799.
        // Refactor DetailsRowFields to generate own styles to remove need for this.
        if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shallowCompare"])(this._rowClassNames || {}, rowClassNames)) {
            this._rowClassNames = rowClassNames;
        }
        var rowFields = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RowFields, { rowClassNames: this._rowClassNames, cellsByColumn: cellsByColumn, columns: columns, item: item, itemIndex: itemIndex, columnStartIndex: showCheckbox ? 1 : 0, onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey, enableUpdateAnimations: enableUpdateAnimations }));
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_8__["FocusZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "data-is-focusable": true }, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"]), (typeof isDraggable === 'boolean'
            ? {
                'data-is-draggable': isDraggable,
                draggable: isDraggable
            }
            : {}), { direction: _FocusZone__WEBPACK_IMPORTED_MODULE_8__["FocusZoneDirection"].horizontal, ref: this._onRootRef, componentRef: this._focusZone, role: "row", "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, className: this._classNames.root, "data-selection-index": itemIndex, "data-item-index": itemIndex, "aria-rowindex": itemIndex + 1, "data-automationid": "DetailsRow", style: { minWidth: rowWidth }, "aria-selected": ariaSelected, allowFocusRoot: true }),
            showCheckbox && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "gridcell", "aria-colindex": 1, "data-selection-toggle": true, className: this._classNames.checkCell }, onRenderCheck({
                selected: isSelected,
                anySelected: isSelectionModal,
                'aria-label': checkButtonAriaLabel,
                canSelect: canSelect,
                compact: compact,
                className: this._classNames.check,
                theme: theme,
                isVisible: checkboxVisibility === _DetailsList_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxVisibility"].always,
                onRenderDetailsCheckbox: onRenderDetailsCheckbox,
                useFastIcons: useFastIcons
            }))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupedList_GroupSpacer__WEBPACK_IMPORTED_MODULE_6__["GroupSpacer"], { indentWidth: indentWidth, count: groupNestingDepth - (this.props.collapseAllVisibility === _GroupedList__WEBPACK_IMPORTED_MODULE_10__["CollapseAllVisibility"].hidden ? 1 : 0) }),
            item && rowFields,
            columnMeasureInfo && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { role: "presentation", className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(this._classNames.cellMeasurer, this._classNames.cell), ref: this._cellMeasurer },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RowFields, { rowClassNames: this._rowClassNames, columns: [columnMeasureInfo.column], item: item, itemIndex: itemIndex, columnStartIndex: (showCheckbox ? 1 : 0) + columns.length, onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey }))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { role: "checkbox", className: this._classNames.checkCover, "aria-checked": isSelected, "data-selection-toggle": true })));
    };
    /**
     * measure cell at index. and call the call back with the measured cell width when finish measure
     *
     * @param index - The cell index
     * @param onMeasureDone - The call back function when finish measure
     */
    DetailsRowBase.prototype.measureCell = function (index, onMeasureDone) {
        var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;
        var column = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, columns[index]);
        column.minWidth = 0;
        column.maxWidth = 999999;
        delete column.calculatedWidth;
        this.setState({
            columnMeasureInfo: {
                index: index,
                column: column,
                onMeasureDone: onMeasureDone
            }
        });
    };
    DetailsRowBase.prototype.focus = function (forceIntoFirstElement) {
        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }
        return !!this._focusZone.current && this._focusZone.current.focus(forceIntoFirstElement);
    };
    DetailsRowBase.prototype._onRenderCheck = function (props) {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DetailsRowCheck__WEBPACK_IMPORTED_MODULE_5__["DetailsRowCheck"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
    };
    DetailsRowBase.prototype._getSelectionState = function (props) {
        var itemIndex = props.itemIndex, selection = props.selection;
        return {
            isSelected: !!selection && selection.isIndexSelected(itemIndex),
            isSelectionModal: !!selection && !!selection.isModal && selection.isModal()
        };
    };
    DetailsRowBase.prototype._getRowDragDropOptions = function () {
        var _a = this.props, item = _a.item, itemIndex = _a.itemIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;
        var options = {
            eventMap: eventsToRegister,
            selectionIndex: itemIndex,
            context: { data: item, index: itemIndex },
            canDrag: dragDropEvents.canDrag,
            canDrop: dragDropEvents.canDrop,
            onDragStart: dragDropEvents.onDragStart,
            updateDropState: this._updateDroppingState,
            onDrop: dragDropEvents.onDrop,
            onDragEnd: dragDropEvents.onDragEnd
        };
        return options;
    };
    return DetailsRowBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/DetailsList/DetailsRow.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRow", function() { return DetailsRow; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsRow_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.base.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");



var DetailsRow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DetailsRow_base__WEBPACK_IMPORTED_MODULE_1__["DetailsRowBase"], _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'DetailsRow'
});


/***/ }),

/***/ "./lib/components/DetailsList/DetailsRow.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowGlobalClassNames", function() { return DetailsRowGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_CELL_STYLE_PROPS", function() { return DEFAULT_CELL_STYLE_PROPS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_ROW_HEIGHTS", function() { return DEFAULT_ROW_HEIGHTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var DetailsRowGlobalClassNames = {
    root: 'ms-DetailsRow',
    compact: 'ms-DetailsList--Compact',
    cell: 'ms-DetailsRow-cell',
    cellAnimation: 'ms-DetailsRow-cellAnimation',
    cellCheck: 'ms-DetailsRow-cellCheck',
    check: 'ms-DetailsRow-check',
    cellMeasurer: 'ms-DetailsRow-cellMeasurer',
    listCellFirstChild: 'ms-List-cell:first-child',
    isContentUnselectable: 'is-contentUnselectable',
    isSelected: 'is-selected',
    isCheckVisible: 'is-check-visible',
    isRowHeader: 'is-row-header',
    fields: 'ms-DetailsRow-fields'
};
var IsFocusableSelector = "[data-is-focusable='true']";
var DEFAULT_CELL_STYLE_PROPS = {
    cellLeftPadding: 12,
    cellRightPadding: 8,
    cellExtraRightPadding: 24
};
// Source of default row heights to share.
var DEFAULT_ROW_HEIGHTS = {
    rowHeight: 42,
    compactRowHeight: 32
};
// Constant values
var values = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, DEFAULT_ROW_HEIGHTS, { rowVerticalPadding: 11, compactRowVerticalPadding: 6 });
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
    var theme = props.theme, isSelected = props.isSelected, canSelect = props.canSelect, droppingClassName = props.droppingClassName, anySelected = props.anySelected, isCheckVisible = props.isCheckVisible, checkboxCellClassName = props.checkboxCellClassName, compact = props.compact, className = props.className, _o = props.cellStyleProps, cellStyleProps = _o === void 0 ? DEFAULT_CELL_STYLE_PROPS : _o, enableUpdateAnimations = props.enableUpdateAnimations;
    var palette = theme.palette, fonts = theme.fonts;
    var neutralPrimary = palette.neutralPrimary, white = palette.white, neutralSecondary = palette.neutralSecondary, neutralLighter = palette.neutralLighter, neutralLight = palette.neutralLight, neutralDark = palette.neutralDark, neutralQuaternaryAlt = palette.neutralQuaternaryAlt;
    var focusBorder = theme.semanticColors.focusBorder;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(DetailsRowGlobalClassNames, theme);
    var colors = {
        // Default
        defaultHeaderText: neutralPrimary,
        defaultMetaText: neutralSecondary,
        defaultBackground: white,
        // Default Hover
        defaultHoverHeaderText: neutralDark,
        defaultHoverMetaText: neutralPrimary,
        defaultHoverBackground: neutralLighter,
        // Selected
        selectedHeaderText: neutralDark,
        selectedMetaText: neutralPrimary,
        selectedBackground: neutralLight,
        // Selected Hover
        selectedHoverHeaderText: neutralDark,
        selectedHoverMetaText: neutralPrimary,
        selectedHoverBackground: neutralQuaternaryAlt,
        // Focus
        focusHeaderText: neutralDark,
        focusMetaText: neutralPrimary,
        focusBackground: neutralLight,
        focusHoverBackground: neutralQuaternaryAlt
    };
    // Selected row styles
    var selectedStyles = [
        Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: -1, borderColor: focusBorder, outlineColor: white }),
        classNames.isSelected,
        {
            color: colors.selectedMetaText,
            background: colors.selectedBackground,
            borderBottom: "1px solid " + white,
            selectors: (_a = {
                    '&:before': {
                        position: 'absolute',
                        display: 'block',
                        top: -1,
                        height: 1,
                        bottom: 0,
                        left: 0,
                        right: 0,
                        content: '',
                        borderTop: "1px solid " + white
                    },
                    // Selected State hover
                    '&:hover': {
                        background: colors.selectedHoverBackground,
                        color: colors.selectedHoverMetaText,
                        selectors: (_b = {},
                            // Selected State hover meta cell
                            _b["." + classNames.cell + " " + _Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                color: 'HighlightText',
                                selectors: {
                                    '> a': {
                                        color: 'HighlightText'
                                    }
                                }
                            },
                            // Selected State hover Header cell
                            _b["." + classNames.isRowHeader] = {
                                color: colors.selectedHoverHeaderText,
                                selectors: (_c = {},
                                    _c[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                        color: 'HighlightText'
                                    },
                                    _c)
                            },
                            // Ensure high-contrast mode overrides default hover background
                            _b[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                background: 'Highlight'
                            },
                            _b)
                    },
                    // Focus state
                    '&:focus': {
                        background: colors.focusBackground,
                        selectors: (_d = {},
                            // Selected State hover meta cell
                            _d["." + classNames.cell] = {
                                color: colors.focusMetaText,
                                selectors: (_e = {},
                                    _e[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                        color: 'HighlightText',
                                        selectors: {
                                            '> a': {
                                                color: 'HighlightText'
                                            }
                                        }
                                    },
                                    _e)
                            },
                            // Row header cell
                            _d["." + classNames.isRowHeader] = {
                                color: colors.focusHeaderText,
                                selectors: (_f = {},
                                    _f[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                        color: 'HighlightText'
                                    },
                                    _f)
                            },
                            // Ensure high-contrast mode overrides default focus background
                            _d[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                background: 'Highlight'
                            },
                            _d)
                    }
                },
                _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    background: 'Highlight',
                    color: 'HighlightText',
                    MsHighContrastAdjust: 'none',
                    selectors: {
                        a: {
                            color: 'HighlightText'
                        }
                    }
                },
                // Focus and hover state
                _a['&:focus:hover'] = {
                    background: colors.focusHoverBackground
                },
                _a)
        }
    ];
    var cannotSelectStyles = [
        classNames.isContentUnselectable,
        {
            userSelect: 'none',
            cursor: 'default'
        }
    ];
    var rootCompactStyles = {
        minHeight: values.compactRowHeight,
        border: 0
    };
    var cellCompactStyles = {
        minHeight: values.compactRowHeight,
        paddingTop: values.compactRowVerticalPadding,
        paddingBottom: values.compactRowVerticalPadding,
        paddingLeft: cellStyleProps.cellLeftPadding + "px"
    };
    var defaultCellStyles = [
        Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: -1 }),
        classNames.cell,
        {
            display: 'inline-block',
            position: 'relative',
            boxSizing: 'border-box',
            minHeight: values.rowHeight,
            verticalAlign: 'top',
            whiteSpace: 'nowrap',
            overflow: 'hidden',
            textOverflow: 'ellipsis',
            paddingTop: values.rowVerticalPadding,
            paddingBottom: values.rowVerticalPadding,
            paddingLeft: cellStyleProps.cellLeftPadding + "px",
            selectors: (_g = {
                    '& > button': {
                        maxWidth: '100%'
                    }
                },
                _g[IsFocusableSelector] = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { inset: -1, borderColor: neutralSecondary, outlineColor: white }),
                _g)
        },
        isSelected && {
            selectors: (_h = {},
                _h[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    background: 'Highlight',
                    color: 'HighlightText',
                    MsHighContrastAdjust: 'none',
                    selectors: {
                        a: {
                            color: 'HighlightText'
                        }
                    }
                },
                _h)
        },
        compact && cellCompactStyles
    ];
    return {
        root: [
            classNames.root,
            _Styling__WEBPACK_IMPORTED_MODULE_1__["AnimationClassNames"].fadeIn400,
            droppingClassName,
            theme.fonts.small,
            isCheckVisible && classNames.isCheckVisible,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, { borderColor: focusBorder, outlineColor: white }),
            {
                borderBottom: "1px solid " + neutralLighter,
                background: colors.defaultBackground,
                color: colors.defaultMetaText,
                display: 'inline-flex',
                minWidth: '100%',
                minHeight: values.rowHeight,
                whiteSpace: 'nowrap',
                padding: 0,
                boxSizing: 'border-box',
                verticalAlign: 'top',
                textAlign: 'left',
                selectors: (_j = {},
                    _j["." + classNames.listCellFirstChild + " &:before"] = {
                        display: 'none'
                    },
                    _j['&:hover'] = {
                        background: colors.defaultHoverBackground,
                        color: colors.defaultHoverMetaText,
                        selectors: (_k = {},
                            _k["." + classNames.isRowHeader] = {
                                color: colors.defaultHoverHeaderText
                            },
                            _k)
                    },
                    _j["&:hover ." + classNames.check] = {
                        opacity: 1
                    },
                    _j["." + _Utilities__WEBPACK_IMPORTED_MODULE_2__["IsFocusVisibleClassName"] + " &:focus ." + classNames.check] = {
                        opacity: 1
                    },
                    _j)
            },
            isSelected && selectedStyles,
            !canSelect && cannotSelectStyles,
            compact && rootCompactStyles,
            className
        ],
        cellUnpadded: {
            paddingRight: cellStyleProps.cellRightPadding + "px"
        },
        cellPadded: {
            paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding + "px",
            selectors: (_l = {},
                _l["&." + classNames.cellCheck] = {
                    paddingRight: 0
                },
                _l)
        },
        cell: defaultCellStyles,
        cellAnimation: enableUpdateAnimations && _Styling__WEBPACK_IMPORTED_MODULE_1__["AnimationStyles"].slideLeftIn40,
        cellMeasurer: [
            classNames.cellMeasurer,
            {
                overflow: 'visible',
                whiteSpace: 'nowrap'
            }
        ],
        checkCell: [
            defaultCellStyles,
            classNames.cellCheck,
            checkboxCellClassName,
            {
                padding: 0,
                // Ensure that the check cell covers the top border of the cell.
                // This ensures the click target does not leave a spot which would
                // cause other items to be deselected.
                paddingTop: 1,
                marginTop: -1,
                flexShrink: 0
            }
        ],
        checkCover: {
            position: 'absolute',
            top: -1,
            left: 0,
            bottom: 0,
            right: 0,
            display: anySelected ? 'block' : 'none'
        },
        fields: [
            classNames.fields,
            {
                display: 'flex',
                alignItems: 'stretch'
            }
        ],
        isRowHeader: [
            classNames.isRowHeader,
            {
                color: colors.defaultHeaderText,
                fontSize: fonts.medium.fontSize
            },
            isSelected && {
                color: colors.selectedHeaderText,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_1__["FontWeights"].semibold,
                selectors: (_m = {},
                    _m[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        color: 'HighlightText'
                    },
                    _m)
            }
        ],
        isMultiline: [
            defaultCellStyles,
            {
                whiteSpace: 'normal',
                wordBreak: 'break-word',
                textOverflow: 'clip'
            }
        ],
        check: [classNames.check]
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/DetailsRowCheck.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheck", function() { return DetailsRowCheck; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Check__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Check.js");
/* harmony import */ var _DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.styles.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var DetailsRowCheckBase = function (props) {
    var _a = props.isVisible, isVisible = _a === void 0 ? false : _a, _b = props.canSelect, canSelect = _b === void 0 ? false : _b, _c = props.anySelected, anySelected = _c === void 0 ? false : _c, _d = props.selected, selected = _d === void 0 ? false : _d, _e = props.isHeader, isHeader = _e === void 0 ? false : _e, className = props.className, checkClassName = props.checkClassName, styles = props.styles, theme = props.theme, compact = props.compact, onRenderDetailsCheckbox = props.onRenderDetailsCheckbox, _f = props.useFastIcons, useFastIcons = _f === void 0 ? true : _f, // must be removed from buttonProps
    buttonProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](props, ["isVisible", "canSelect", "anySelected", "selected", "isHeader", "className", "checkClassName", "styles", "theme", "compact", "onRenderDetailsCheckbox", "useFastIcons"]);
    var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender;
    var onRenderCheckbox = onRenderDetailsCheckbox || defaultCheckboxRender;
    var classNames = getClassNames(styles, {
        theme: theme,
        canSelect: canSelect,
        selected: selected,
        anySelected: anySelected,
        className: className,
        isHeader: isHeader,
        isVisible: isVisible,
        compact: compact
    });
    var detailsCheckboxProps = {
        checked: selected,
        theme: theme
    };
    return canSelect ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, buttonProps, { role: "checkbox", className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.root, classNames.check), "aria-checked": selected, "data-selection-toggle": true, "data-automationid": "DetailsRowCheck" }), onRenderCheckbox(detailsCheckboxProps, defaultCheckboxRender))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, buttonProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.root, classNames.check) })));
};
function _defaultCheckboxRender(checkboxProps) {
    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Check__WEBPACK_IMPORTED_MODULE_3__["Check"], { checked: checkboxProps.checked });
}
function _fastDefaultCheckboxRender(checkboxProps) {
    return Object(_Check__WEBPACK_IMPORTED_MODULE_3__["getCheck"])(checkboxProps.theme, checkboxProps.checked);
}
var DetailsRowCheck = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(DetailsRowCheckBase, _DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"], undefined, { scope: 'DetailsRowCheck' }, true);


/***/ }),

/***/ "./lib/components/DetailsList/DetailsRowCheck.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CHECK_CELL_WIDTH", function() { return CHECK_CELL_WIDTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony import */ var _DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.styles.js");
/* harmony import */ var _Check_Check_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Check/Check.styles.js");




var GlobalClassNames = {
    root: 'ms-DetailsRow-check',
    isDisabled: 'ms-DetailsRow-check--isDisabled',
    isHeader: 'ms-DetailsRow-check--isHeader'
};
var CHECK_CELL_WIDTH = 48;
var getStyles = function (props) {
    var theme = props.theme, className = props.className, isHeader = props.isHeader, selected = props.selected, anySelected = props.anySelected, canSelect = props.canSelect, compact = props.compact, isVisible = props.isVisible;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var rowHeight = _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_ROW_HEIGHTS"].rowHeight, compactRowHeight = _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_1__["DEFAULT_ROW_HEIGHTS"].compactRowHeight;
    var height = isHeader ? _DetailsHeader_styles__WEBPACK_IMPORTED_MODULE_2__["HEADER_HEIGHT"] : compact ? compactRowHeight : rowHeight;
    var isCheckVisible = isVisible || selected || anySelected;
    return {
        root: [classNames.root, className],
        check: [
            !canSelect && classNames.isDisabled,
            isHeader && classNames.isHeader,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            theme.fonts.small,
            _Check_Check_styles__WEBPACK_IMPORTED_MODULE_3__["CheckGlobalClassNames"].checkHost,
            {
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                cursor: 'default',
                boxSizing: 'border-box',
                verticalAlign: 'top',
                background: 'none',
                backgroundColor: 'transparent',
                border: 'none',
                opacity: isCheckVisible ? 1 : 0,
                height: height,
                width: CHECK_CELL_WIDTH,
                padding: 0,
                margin: 0
            }
        ],
        isDisabled: []
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/DetailsRowFields.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailsRowFields", function() { return DetailsRowFields; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");



var getCellText = function (item, column) {
    var value = item && column && column.fieldName ? item[column.fieldName] : '';
    if (value === null || value === undefined) {
        value = '';
    }
    if (typeof value === 'boolean') {
        return value.toString();
    }
    return value;
};
/**
 * Component for rendering a row's cells in a `DetailsList`.
 *
 * {@docCategory DetailsList}
 */
var DetailsRowFields = function (props) {
    var columns = props.columns, columnStartIndex = props.columnStartIndex, rowClassNames = props.rowClassNames, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_CELL_STYLE_PROPS"] : _a, item = props.item, itemIndex = props.itemIndex, onRenderItemColumn = props.onRenderItemColumn, getCellValueKey = props.getCellValueKey, cellsByColumn = props.cellsByColumn, enableUpdateAnimations = props.enableUpdateAnimations;
    var cellValueKeysRef = react__WEBPACK_IMPORTED_MODULE_0__["useRef"]();
    var cellValueKeys = cellValueKeysRef.current || (cellValueKeysRef.current = {});
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: rowClassNames.fields, "data-automationid": "DetailsRowFields", role: "presentation" }, columns.map(function (column, columnIndex) {
        var width = typeof column.calculatedWidth === 'undefined'
            ? 'auto'
            : column.calculatedWidth +
                cellStyleProps.cellLeftPadding +
                cellStyleProps.cellRightPadding +
                (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);
        var _a = column.onRender, onRender = _a === void 0 ? onRenderItemColumn : _a, _b = column.getValueKey, getValueKey = _b === void 0 ? getCellValueKey : _b;
        var cellContentsRender = cellsByColumn && column.key in cellsByColumn
            ? cellsByColumn[column.key]
            : onRender
                ? onRender(item, itemIndex, column)
                : getCellText(item, column);
        var previousValueKey = cellValueKeys[column.key];
        var cellValueKey = enableUpdateAnimations && getValueKey ? getValueKey(item, itemIndex, column) : undefined;
        var showAnimation = false;
        if (cellValueKey !== undefined && previousValueKey !== undefined && cellValueKey !== previousValueKey) {
            showAnimation = true;
        }
        cellValueKeys[column.key] = cellValueKey;
        // generate a key that auto-dirties when content changes, to force the container to re-render, to trigger animation
        var key = "" + column.key + (cellValueKey !== undefined ? "-" + cellValueKey : '');
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { key: key, role: column.isRowHeader ? 'rowheader' : 'gridcell', "aria-colindex": columnIndex + columnStartIndex + 1, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["css"])(column.className, column.isMultiline && rowClassNames.isMultiline, column.isRowHeader && rowClassNames.isRowHeader, rowClassNames.cell, column.isPadded ? rowClassNames.cellPadded : rowClassNames.cellUnpadded, showAnimation && rowClassNames.cellAnimation), style: { width: width }, "data-automationid": "DetailsRowCell", "data-automation-key": column.key }, cellContentsRender));
    })));
};


/***/ }),

/***/ "./lib/components/DetailsList/ShimmeredDetailsList.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsListBase", function() { return ShimmeredDetailsListBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/selection/interfaces.js");
/* harmony import */ var _DetailsList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsList.js");
/* harmony import */ var _Shimmer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Shimmer.js");
/* harmony import */ var _DetailsList_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");








var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var SHIMMER_INITIAL_ITEMS = 10;
var DEFAULT_SHIMMER_HEIGHT = 7;
var SHIMMER_LINE_VS_CELL_WIDTH_RATIO = 0.95;
var ShimmeredDetailsListBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ShimmeredDetailsListBase, _super);
    function ShimmeredDetailsListBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onRenderShimmerPlaceholder = function (index, rowProps) {
            var onRenderCustomPlaceholder = _this.props.onRenderCustomPlaceholder;
            var placeholderElements = onRenderCustomPlaceholder
                ? onRenderCustomPlaceholder(rowProps, index, _this._renderDefaultShimmerPlaceholder)
                : _this._renderDefaultShimmerPlaceholder(rowProps);
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Shimmer__WEBPACK_IMPORTED_MODULE_5__["Shimmer"], { customElementsGroup: placeholderElements });
        };
        _this._renderDefaultShimmerPlaceholder = function (rowProps) {
            var columns = rowProps.columns, compact = rowProps.compact, selectionMode = rowProps.selectionMode, checkboxVisibility = rowProps.checkboxVisibility, _a = rowProps.cellStyleProps, cellStyleProps = _a === void 0 ? _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_7__["DEFAULT_CELL_STYLE_PROPS"] : _a;
            var rowHeight = _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_7__["DEFAULT_ROW_HEIGHTS"].rowHeight, compactRowHeight = _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_7__["DEFAULT_ROW_HEIGHTS"].compactRowHeight;
            var gapHeight = compact ? compactRowHeight : rowHeight + 1; // 1px to take into account the border-bottom of DetailsRow.
            var shimmerElementsRow = [];
            var showCheckbox = selectionMode !== _utilities_selection_interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].none && checkboxVisibility !== _DetailsList_types__WEBPACK_IMPORTED_MODULE_6__["CheckboxVisibility"].hidden;
            if (showCheckbox) {
                shimmerElementsRow.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementsGroup"], { key: 'checkboxGap', shimmerElements: [{ type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].gap, width: '40px', height: gapHeight }] }));
            }
            columns.map(function (column, columnIdx) {
                var shimmerElements = [];
                var groupWidth = cellStyleProps.cellLeftPadding +
                    cellStyleProps.cellRightPadding +
                    column.calculatedWidth +
                    (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);
                shimmerElements.push({
                    type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].gap,
                    width: cellStyleProps.cellLeftPadding,
                    height: gapHeight
                });
                if (column.isIconOnly) {
                    shimmerElements.push({
                        type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].line,
                        width: column.calculatedWidth,
                        height: column.calculatedWidth
                    });
                    shimmerElements.push({
                        type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].gap,
                        width: cellStyleProps.cellRightPadding,
                        height: gapHeight
                    });
                }
                else {
                    shimmerElements.push({
                        type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].line,
                        width: column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO,
                        height: DEFAULT_SHIMMER_HEIGHT
                    });
                    shimmerElements.push({
                        type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].gap,
                        width: cellStyleProps.cellRightPadding +
                            (column.calculatedWidth - column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO) +
                            (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),
                        height: gapHeight
                    });
                }
                shimmerElementsRow.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementsGroup"], { key: columnIdx, width: groupWidth + "px", shimmerElements: shimmerElements }));
            });
            // When resizing the window from narrow to wider, we need to cover the exposed Shimmer wave until the column resizing logic is done.
            shimmerElementsRow.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementsGroup"], { key: 'endGap', width: '100%', shimmerElements: [{ type: _Shimmer__WEBPACK_IMPORTED_MODULE_5__["ShimmerElementType"].gap, width: '100%', height: gapHeight }] }));
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: { display: 'flex' } }, shimmerElementsRow);
        };
        _this._shimmerItems = props.shimmerLines ? new Array(props.shimmerLines) : new Array(SHIMMER_INITIAL_ITEMS);
        return _this;
    }
    ShimmeredDetailsListBase.prototype.render = function () {
        var _a = this.props, detailsListStyles = _a.detailsListStyles, enableShimmer = _a.enableShimmer, items = _a.items, listProps = _a.listProps, onRenderCustomPlaceholder = _a.onRenderCustomPlaceholder, removeFadingOverlay = _a.removeFadingOverlay, shimmerLines = _a.shimmerLines, styles = _a.styles, theme = _a.theme, ariaLabelForGrid = _a.ariaLabelForGrid, ariaLabelForShimmer = _a.ariaLabelForShimmer, restProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["detailsListStyles", "enableShimmer", "items", "listProps", "onRenderCustomPlaceholder", "removeFadingOverlay", "shimmerLines", "styles", "theme", "ariaLabelForGrid", "ariaLabelForShimmer"]);
        var listClassName = listProps && listProps.className;
        this._classNames = getClassNames(styles, {
            theme: theme
        });
        var newListProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, listProps, { 
            // Adds to the optional listProp className a fading out overlay className only when `enableShimmer` toggled on
            // and the overlay is not disabled by `removeFadingOverlay` prop.
            className: enableShimmer && !removeFadingOverlay ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(this._classNames.root, listClassName) : listClassName });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DetailsList__WEBPACK_IMPORTED_MODULE_4__["DetailsList"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, restProps, { styles: detailsListStyles, items: enableShimmer ? this._shimmerItems : items, isPlaceholderData: enableShimmer, ariaLabelForGrid: (enableShimmer && ariaLabelForShimmer) || ariaLabelForGrid, onRenderMissingItem: this._onRenderShimmerPlaceholder, listProps: newListProps })));
    };
    return ShimmeredDetailsListBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/DetailsList/ShimmeredDetailsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsList", function() { return ShimmeredDetailsList; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmeredDetailsList_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DetailsList/ShimmeredDetailsList.base.js");
/* harmony import */ var _ShimmeredDetailsList_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/ShimmeredDetailsList.styles.js");



var ShimmeredDetailsList = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ShimmeredDetailsList_base__WEBPACK_IMPORTED_MODULE_1__["ShimmeredDetailsListBase"], _ShimmeredDetailsList_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ShimmeredDetailsList' });


/***/ }),

/***/ "./lib/components/DetailsList/ShimmeredDetailsList.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var getStyles = function (props) {
    var theme = props.theme;
    var palette = theme.palette;
    return {
        root: {
            position: 'relative',
            selectors: {
                ':after': {
                    content: '""',
                    position: 'absolute',
                    top: 0,
                    right: 0,
                    bottom: 0,
                    left: 0,
                    backgroundImage: "linear-gradient(to bottom, transparent 30%, " + palette.whiteTranslucent40 + " 65%," + palette.white + " 100%)"
                }
            }
        }
    };
};


/***/ }),

/***/ "./lib/components/DetailsList/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _utilities_selection_index__WEBPACK_IMPORTED_MODULE_0__["SelectionZone"]; });

/* harmony import */ var _GroupedList_GroupedList_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupedList.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _GroupedList_GroupedList_types__WEBPACK_IMPORTED_MODULE_1__["CollapseAllVisibility"]; });

/* harmony import */ var _DetailsHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeader", function() { return _DetailsHeader__WEBPACK_IMPORTED_MODULE_2__["DetailsHeader"]; });

/* harmony import */ var _DetailsHeader_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderBase", function() { return _DetailsHeader_base__WEBPACK_IMPORTED_MODULE_3__["DetailsHeaderBase"]; });

/* harmony import */ var _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DetailsList/DetailsHeader.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectAllVisibility", function() { return _DetailsHeader_types__WEBPACK_IMPORTED_MODULE_4__["SelectAllVisibility"]; });

/* harmony import */ var _DetailsList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/DetailsList/DetailsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsList", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_5__["DetailsList"]; });

/* harmony import */ var _DetailsList_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/DetailsList/DetailsList.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListBase", function() { return _DetailsList_base__WEBPACK_IMPORTED_MODULE_6__["DetailsListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildColumns", function() { return _DetailsList_base__WEBPACK_IMPORTED_MODULE_6__["buildColumns"]; });

/* harmony import */ var _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/DetailsList/DetailsList.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnActionsMode", function() { return _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__["ColumnActionsMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConstrainMode", function() { return _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__["ConstrainMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDragEndLocation", function() { return _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__["ColumnDragEndLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListLayoutMode", function() { return _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__["DetailsListLayoutMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxVisibility", function() { return _DetailsList_types__WEBPACK_IMPORTED_MODULE_7__["CheckboxVisibility"]; });

/* harmony import */ var _DetailsRow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRow", function() { return _DetailsRow__WEBPACK_IMPORTED_MODULE_8__["DetailsRow"]; });

/* harmony import */ var _DetailsRow_base__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowBase", function() { return _DetailsRow_base__WEBPACK_IMPORTED_MODULE_9__["DetailsRowBase"]; });

/* harmony import */ var _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowGlobalClassNames", function() { return _DetailsRow_styles__WEBPACK_IMPORTED_MODULE_10__["DetailsRowGlobalClassNames"]; });

/* harmony import */ var _DetailsRowCheck__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheck", function() { return _DetailsRowCheck__WEBPACK_IMPORTED_MODULE_11__["DetailsRowCheck"]; });

/* harmony import */ var _DetailsRowFields__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/components/DetailsList/DetailsRowFields.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowFields", function() { return _DetailsRowFields__WEBPACK_IMPORTED_MODULE_12__["DetailsRowFields"]; });

/* harmony import */ var _DetailsColumn_base__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/components/DetailsList/DetailsColumn.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnBase", function() { return _DetailsColumn_base__WEBPACK_IMPORTED_MODULE_13__["DetailsColumnBase"]; });

















/***/ }),

/***/ "./lib/components/Dialog/Dialog.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogBase", function() { return DialogBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Dialog/DialogContent.types.js");
/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Modal.js");
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony import */ var _DialogContent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Dialog/DialogContent.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();

var DefaultModalProps = {
    isDarkOverlay: false,
    isBlocking: false,
    className: '',
    containerClassName: '',
    topOffsetFixed: false
};
var DefaultDialogContentProps = {
    type: _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__["DialogType"].normal,
    className: '',
    topButtonsProps: []
};
var DialogBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DialogBase, _super);
    function DialogBase(props) {
        var _this = _super.call(this, props) || this;
        _this._getSubTextId = function () {
            var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;
            var id = ariaDescribedById || (modalProps && modalProps.subtitleAriaId);
            if (!id) {
                id = (subText || (dialogContentProps && dialogContentProps.subText)) && _this._defaultSubTextId;
            }
            return id;
        };
        _this._getTitleTextId = function () {
            var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;
            var id = ariaLabelledById || (modalProps && modalProps.titleAriaId);
            if (!id) {
                id = (title || (dialogContentProps && dialogContentProps.title)) && _this._defaultTitleTextId;
            }
            return id;
        };
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Dialog');
        _this._defaultTitleTextId = _this._id + '-title';
        _this._defaultSubTextId = _this._id + '-subText';
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnDeprecations"])('Dialog', props, {
                isOpen: 'hidden',
                type: 'dialogContentProps.type',
                subText: 'dialogContentProps.subText',
                contentClassName: 'dialogContentProps.className',
                topButtonsProps: 'dialogContentProps.topButtonsProps',
                className: 'modalProps.className',
                isDarkOverlay: 'modalProps.isDarkOverlay',
                isBlocking: 'modalProps.isBlocking',
                containerClassName: 'modalProps.containerClassName',
                onDismissed: 'modalProps.onDismissed',
                onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',
                ariaDescribedById: 'modalProps.subtitleAriaId',
                ariaLabelledById: 'modalProps.titleAriaId'
            });
        }
        return _this;
    }
    DialogBase.prototype.render = function () {
        var _a = this.props, className = _a.className, containerClassName = _a.containerClassName, contentClassName = _a.contentClassName, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, firstFocusableSelector = _a.firstFocusableSelector, forceFocusInsideTrap = _a.forceFocusInsideTrap, styles = _a.styles, hidden = _a.hidden, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isClickableOutsideFocusTrap = _a.isClickableOutsideFocusTrap, isDarkOverlay = _a.isDarkOverlay, isOpen = _a.isOpen, onDismiss = _a.onDismiss, onDismissed = _a.onDismissed, onLayerDidMount = _a.onLayerDidMount, responsiveMode = _a.responsiveMode, subText = _a.subText, theme = _a.theme, title = _a.title, topButtonsProps = _a.topButtonsProps, type = _a.type, minWidth = _a.minWidth, maxWidth = _a.maxWidth, modalProps = _a.modalProps;
        var mergedLayerProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (modalProps ? modalProps.layerProps : { onLayerDidMount: onLayerDidMount }));
        if (onLayerDidMount && !mergedLayerProps.onLayerDidMount) {
            mergedLayerProps.onLayerDidMount = onLayerDidMount;
        }
        var dialogDraggableClassName;
        var dragOptions;
        // if we are draggable, make sure we are using the correct
        // draggable classname and selectors
        if (modalProps && modalProps.dragOptions && !modalProps.dragOptions.dragHandleSelector) {
            dialogDraggableClassName = 'ms-Dialog-draggable-header';
            dragOptions = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, modalProps.dragOptions, { dragHandleSelector: "." + dialogDraggableClassName });
        }
        else {
            dragOptions = modalProps && modalProps.dragOptions;
        }
        var mergedModalProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, DefaultModalProps, modalProps, { layerProps: mergedLayerProps, dragOptions: dragOptions });
        var dialogContentProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, DefaultDialogContentProps, this.props.dialogContentProps, { draggableHeaderClassName: dialogDraggableClassName });
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className || mergedModalProps.className,
            containerClassName: containerClassName || mergedModalProps.containerClassName,
            hidden: hidden,
            dialogDefaultMinWidth: minWidth,
            dialogDefaultMaxWidth: maxWidth
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Modal__WEBPACK_IMPORTED_MODULE_4__["Modal"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, ignoreExternalFocusing: ignoreExternalFocusing, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, onDismissed: onDismissed, responsiveMode: responsiveMode }, mergedModalProps, { isDarkOverlay: isDarkOverlay !== undefined ? isDarkOverlay : mergedModalProps.isDarkOverlay, isBlocking: isBlocking !== undefined ? isBlocking : mergedModalProps.isBlocking, isOpen: isOpen !== undefined ? isOpen : !hidden, className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss ? onDismiss : mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DialogContent__WEBPACK_IMPORTED_MODULE_6__["DialogContent"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ titleId: this._defaultTitleTextId, subTextId: this._defaultSubTextId, title: title, subText: subText, showCloseButton: isBlocking !== undefined ? !isBlocking : !mergedModalProps.isBlocking, topButtonsProps: topButtonsProps ? topButtonsProps : dialogContentProps.topButtonsProps, type: type !== undefined ? type : dialogContentProps.type, onDismiss: onDismiss ? onDismiss : dialogContentProps.onDismiss, className: contentClassName || dialogContentProps.className }, dialogContentProps), this.props.children)));
    };
    DialogBase.defaultProps = {
        hidden: true
    };
    DialogBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_5__["withResponsiveMode"]
    ], DialogBase);
    return DialogBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Dialog/Dialog.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return Dialog; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Dialog_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dialog/Dialog.base.js");
/* harmony import */ var _Dialog_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dialog/Dialog.styles.js");



var Dialog = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Dialog_base__WEBPACK_IMPORTED_MODULE_1__["DialogBase"], _Dialog_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'Dialog' });


/***/ }),

/***/ "./lib/components/Dialog/Dialog.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Dialog'
};
var getStyles = function (props) {
    var _a;
    var className = props.className, containerClassName = props.containerClassName, _b = props.dialogDefaultMinWidth, dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [classNames.root, theme.fonts.medium, className],
        main: [
            {
                width: dialogDefaultMinWidth,
                outline: '3px solid transparent',
                selectors: (_a = {},
                    _a["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinMedium"] + "px)"] = {
                        width: 'auto',
                        maxWidth: dialogDefaultMaxWidth,
                        minWidth: dialogDefaultMinWidth
                    },
                    _a)
            },
            !hidden && { display: 'flex' },
            containerClassName
        ]
    };
};


/***/ }),

/***/ "./lib/components/Dialog/DialogContent.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogContentBase", function() { return DialogContentBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Dialog/DialogContent.types.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _DialogFooter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Dialog/DialogFooter.js");
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var DialogFooterType = react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_DialogFooter__WEBPACK_IMPORTED_MODULE_5__["DialogFooter"], null).type;
var DialogContentBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DialogContentBase, _super);
    function DialogContentBase(props) {
        return _super.call(this, props) || this;
    }
    DialogContentBase.prototype.render = function () {
        var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            isLargeHeader: type === _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__["DialogType"].largeHeader,
            isClose: type === _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__["DialogType"].close,
            draggableHeaderClassName: draggableHeaderClassName
        });
        var groupings = this._groupChildren();
        var subTextContent;
        if (subText) {
            subTextContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { className: classNames.subText, id: subTextId }, subText));
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.content },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.header },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { className: classNames.title, id: titleId, role: "heading", "aria-level": 2 }, title),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.topButton },
                    this.props.topButtonsProps.map(function (props, index) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: props.uniqueId || index }, props))); }),
                    (type === _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__["DialogType"].close || (showCloseButton && type !== _DialogContent_types__WEBPACK_IMPORTED_MODULE_3__["DialogType"].largeHeader)) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.inner },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.innerContent },
                    subTextContent,
                    groupings.contents),
                groupings.footers)));
    };
    // @TODO - typing the footers as an array of DialogFooter is difficult because
    // casing "child as DialogFooter" causes a problem because
    // "Neither type 'ReactElement<any>' nor type 'DialogFooter' is assignable to the other."
    DialogContentBase.prototype._groupChildren = function () {
        var groupings = {
            footers: [],
            contents: []
        };
        react__WEBPACK_IMPORTED_MODULE_1__["Children"].map(this.props.children, function (child) {
            if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {
                groupings.footers.push(child);
            }
            else {
                groupings.contents.push(child);
            }
        });
        return groupings;
    };
    DialogContentBase.defaultProps = {
        showCloseButton: false,
        className: '',
        topButtonsProps: [],
        closeButtonAriaLabel: 'Close'
    };
    DialogContentBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_6__["withResponsiveMode"]
    ], DialogContentBase);
    return DialogContentBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Dialog/DialogContent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return DialogContent; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DialogContent_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dialog/DialogContent.base.js");
/* harmony import */ var _DialogContent_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dialog/DialogContent.styles.js");



var DialogContent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DialogContent_base__WEBPACK_IMPORTED_MODULE_1__["DialogContentBase"], _DialogContent_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DialogContent' });


/***/ }),

/***/ "./lib/components/Dialog/DialogContent.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    contentLgHeader: 'ms-Dialog-lgHeader',
    close: 'ms-Dialog--close',
    subText: 'ms-Dialog-subText',
    header: 'ms-Dialog-header',
    headerLg: 'ms-Dialog--lgHeader',
    button: 'ms-Dialog-button ms-Dialog-button--close',
    inner: 'ms-Dialog-inner',
    content: 'ms-Dialog-content',
    title: 'ms-Dialog-title'
};
var getStyles = function (props) {
    var _a, _b, _c;
    var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;
    var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        content: [
            isLargeHeader && [
                classNames.contentLgHeader,
                {
                    borderTop: "4px solid " + palette.themePrimary
                }
            ],
            isClose && classNames.close,
            {
                flexGrow: 1,
                overflowY: 'hidden' // required for allowScrollOnElement
            },
            className
        ],
        subText: [
            classNames.subText,
            fonts.medium,
            {
                margin: '0 0 24px 0',
                color: semanticColors.bodySubtext,
                lineHeight: '1.5',
                wordWrap: 'break-word',
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular
            }
        ],
        header: [
            classNames.header,
            {
                position: 'relative',
                width: '100%',
                boxSizing: 'border-box'
            },
            isClose && classNames.close,
            draggableHeaderClassName && [
                draggableHeaderClassName,
                {
                    cursor: 'move'
                }
            ]
        ],
        button: [
            classNames.button,
            hidden && {
                selectors: {
                    '.ms-Icon.ms-Icon--Cancel': {
                        color: semanticColors.buttonText,
                        fontSize: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].medium
                    }
                }
            }
        ],
        inner: [
            classNames.inner,
            {
                padding: '0 24px 24px',
                selectors: (_a = {},
                    _a["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinSmall"] + "px) and (max-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxSmall"] + "px)"] = {
                        padding: '0 16px 16px'
                    },
                    _a)
            }
        ],
        innerContent: [
            classNames.content,
            {
                position: 'relative',
                width: '100%'
            }
        ],
        title: [
            classNames.title,
            fonts.xLarge,
            {
                color: semanticColors.bodyText,
                margin: '0',
                padding: '16px 46px 20px 24px',
                lineHeight: 'normal',
                selectors: (_b = {},
                    _b["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinSmall"] + "px) and (max-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxSmall"] + "px)"] = {
                        padding: '16px 46px 16px 16px'
                    },
                    _b)
            },
            isLargeHeader && {
                color: semanticColors.menuHeader
            },
            isMultiline && { fontSize: fonts.xxLarge.fontSize }
        ],
        topButton: [
            {
                display: 'flex',
                flexDirection: 'row',
                flexWrap: 'nowrap',
                position: 'absolute',
                top: '0',
                right: '0',
                padding: '15px 15px 0 0',
                selectors: (_c = {
                        '> *': {
                            flex: '0 0 auto'
                        },
                        '.ms-Dialog-button': {
                            color: semanticColors.buttonText
                        },
                        '.ms-Dialog-button:hover': {
                            color: semanticColors.buttonTextHovered,
                            borderRadius: effects.roundedCorner2
                        }
                    },
                    _c["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinSmall"] + "px) and (max-width: " + _Styling__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxSmall"] + "px)"] = {
                        padding: '15px 8px 0 0'
                    },
                    _c)
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Dialog/DialogContent.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogType", function() { return DialogType; });
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_0__["ResponsiveMode"]; });


 // Exported because the type is an optional prop and not exported otherwise.
/**
 * {@docCategory Dialog}
 */
var DialogType;
(function (DialogType) {
    /** Standard dialog */
    DialogType[DialogType["normal"] = 0] = "normal";
    /** Dialog with large header banner */
    DialogType[DialogType["largeHeader"] = 1] = "largeHeader";
    /** Dialog with an 'x' close button in the upper-right corner */
    DialogType[DialogType["close"] = 2] = "close";
})(DialogType || (DialogType = {}));


/***/ }),

/***/ "./lib/components/Dialog/DialogFooter.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogFooterBase", function() { return DialogFooterBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var DialogFooterBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DialogFooterBase, _super);
    function DialogFooterBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DialogFooterBase.prototype.render = function () {
        var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.actions },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));
    };
    DialogFooterBase.prototype._renderChildrenAsActions = function () {
        var _this = this;
        return react__WEBPACK_IMPORTED_MODULE_1__["Children"].map(this.props.children, function (child) { return (child ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.action }, child) : null); });
    };
    return DialogFooterBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Dialog/DialogFooter.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogFooter", function() { return DialogFooter; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DialogFooter_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dialog/DialogFooter.base.js");
/* harmony import */ var _DialogFooter_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dialog/DialogFooter.styles.js");



var DialogFooter = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DialogFooter_base__WEBPACK_IMPORTED_MODULE_1__["DialogFooterBase"], _DialogFooter_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DialogFooter' });


/***/ }),

/***/ "./lib/components/Dialog/DialogFooter.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    actions: 'ms-Dialog-actions',
    action: 'ms-Dialog-action',
    actionsRight: 'ms-Dialog-actionsRight'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        actions: [
            classNames.actions,
            {
                position: 'relative',
                width: '100%',
                minHeight: '24px',
                lineHeight: '24px',
                margin: '16px 0 0',
                fontSize: '0',
                selectors: {
                    '.ms-Button': {
                        lineHeight: 'normal'
                    }
                }
            },
            className
        ],
        action: [
            classNames.action,
            {
                margin: '0 4px'
            }
        ],
        actionsRight: [
            classNames.actionsRight,
            {
                textAlign: 'right',
                marginRight: '-4px',
                fontSize: '0'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Dialog/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Dialog/Dialog.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_0__["Dialog"]; });

/* harmony import */ var _Dialog_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dialog/Dialog.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogBase", function() { return _Dialog_base__WEBPACK_IMPORTED_MODULE_1__["DialogBase"]; });

/* harmony import */ var _DialogContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dialog/DialogContent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return _DialogContent__WEBPACK_IMPORTED_MODULE_2__["DialogContent"]; });

/* harmony import */ var _DialogContent_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Dialog/DialogContent.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContentBase", function() { return _DialogContent_base__WEBPACK_IMPORTED_MODULE_3__["DialogContentBase"]; });

/* harmony import */ var _DialogFooter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Dialog/DialogFooter.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooter", function() { return _DialogFooter__WEBPACK_IMPORTED_MODULE_4__["DialogFooter"]; });

/* harmony import */ var _DialogFooter_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Dialog/DialogFooter.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooterBase", function() { return _DialogFooter_base__WEBPACK_IMPORTED_MODULE_5__["DialogFooterBase"]; });

/* harmony import */ var _DialogContent_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Dialog/DialogContent.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _DialogContent_types__WEBPACK_IMPORTED_MODULE_6__["ResponsiveMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogType", function() { return _DialogContent_types__WEBPACK_IMPORTED_MODULE_6__["DialogType"]; });










/***/ }),

/***/ "./lib/components/Divider/VerticalDivider.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalDividerBase", function() { return VerticalDividerBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
var VerticalDividerBase = function (props) {
    var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;
    var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: classNames.wrapper },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: classNames.divider })));
};


/***/ }),

/***/ "./lib/components/Divider/VerticalDivider.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDividerClassNames", function() { return getDividerClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


/**
 * @deprecated use getStyles exported from VerticalDivider.styles.ts
 */
var getDividerClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (theme) {
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyleSets"])({
        wrapper: {
            display: 'inline-flex',
            height: '100%',
            alignItems: 'center'
        },
        divider: {
            width: 1,
            height: '100%',
            backgroundColor: theme.palette.neutralTertiaryAlt
        }
    });
});


/***/ }),

/***/ "./lib/components/Divider/VerticalDivider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalDivider", function() { return VerticalDivider; });
/* harmony import */ var _VerticalDivider_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Divider/VerticalDivider.styles.js");
/* harmony import */ var _VerticalDivider_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Divider/VerticalDivider.base.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var VerticalDivider = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(_VerticalDivider_base__WEBPACK_IMPORTED_MODULE_1__["VerticalDividerBase"], _VerticalDivider_styles__WEBPACK_IMPORTED_MODULE_0__["getStyles"], undefined, {
    scope: 'VerticalDivider'
});


/***/ }),

/***/ "./lib/components/Divider/VerticalDivider.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var getStyles = function (props) {
    var theme = props.theme, getClassNames = props.getClassNames, className = props.className;
    if (!theme) {
        throw new Error('Theme is undefined or null.');
    }
    if (getClassNames) {
        var names = getClassNames(theme);
        return {
            wrapper: [names.wrapper],
            divider: [names.divider]
        };
    }
    return {
        wrapper: [
            {
                display: 'inline-flex',
                height: '100%',
                alignItems: 'center'
            },
            className
        ],
        divider: [
            {
                width: 1,
                height: '100%',
                backgroundColor: theme.palette.neutralTertiaryAlt
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Divider/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _VerticalDivider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Divider/VerticalDivider.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDivider", function() { return _VerticalDivider__WEBPACK_IMPORTED_MODULE_0__["VerticalDivider"]; });




/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCard.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardBase", function() { return DocumentCardBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCard_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DocumentCard/DocumentCard.types.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardBase, _super);
    function DocumentCardBase(props) {
        var _this = _super.call(this, props) || this;
        _this._rootElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onClick = function (ev) {
            _this._onAction(ev);
        };
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                _this._onAction(ev);
            }
        };
        _this._onAction = function (ev) {
            var _a = _this.props, onClick = _a.onClick, onClickHref = _a.onClickHref;
            if (onClick) {
                onClick(ev);
            }
            else if (!onClick && onClickHref) {
                // If no onClick Function was provided and we do have an onClickHref, redirect to the onClickHref
                window.location.href = onClickHref;
                ev.preventDefault();
                ev.stopPropagation();
            }
        };
        _this._warnDeprecations({
            accentColor: undefined
        });
        return _this;
    }
    DocumentCardBase.prototype.render = function () {
        var _a = this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, children = _a.children, type = _a.type, accentColor = _a.accentColor, styles = _a.styles, theme = _a.theme, className = _a.className;
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"], [
            'className',
            'onClick',
            'type',
            'role'
        ]);
        var actionable = onClick || onClickHref ? true : false;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            actionable: actionable,
            compact: type === _DocumentCard_types__WEBPACK_IMPORTED_MODULE_3__["DocumentCardType"].compact ? true : false
        });
        // Override the border color if an accent color was provided (compact card only)
        var style;
        if (type === _DocumentCard_types__WEBPACK_IMPORTED_MODULE_3__["DocumentCardType"].compact && accentColor) {
            style = {
                borderBottomColor: accentColor
            };
        }
        // if this element is actionable it should have an aria role
        var role = this.props.role || (actionable ? (onClick ? 'button' : 'link') : undefined);
        var tabIndex = actionable ? 0 : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._rootElement, tabIndex: tabIndex, "data-is-focusable": actionable, role: role, className: this._classNames.root, onKeyDown: actionable ? this._onKeyDown : undefined, onClick: actionable ? this._onClick : undefined, style: style }, nativeProps), children));
    };
    DocumentCardBase.prototype.focus = function () {
        if (this._rootElement.current) {
            this._rootElement.current.focus();
        }
    };
    DocumentCardBase.defaultProps = {
        type: _DocumentCard_types__WEBPACK_IMPORTED_MODULE_3__["DocumentCardType"].normal
    };
    return DocumentCardBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCard", function() { return DocumentCard; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCard_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCard.base.js");
/* harmony import */ var _DocumentCard_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCard.styles.js");



var DocumentCard = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCard_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardBase"], _DocumentCard_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCard' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCard.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _DocumentCardPreview_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardPreview.styles.js");
/* harmony import */ var _DocumentCardActivity_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActivity.styles.js");
/* harmony import */ var _DocumentCardTitle_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardTitle.styles.js");
/* harmony import */ var _DocumentCardLocation_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLocation.styles.js");





var GlobalClassNames = {
    root: 'ms-DocumentCard',
    rootActionable: 'ms-DocumentCard--actionable',
    rootCompact: 'ms-DocumentCard--compact'
};
var getStyles = function (props) {
    var _a, _b;
    var className = props.className, theme = props.theme, actionable = props.actionable, compact = props.compact;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                WebkitFontSmoothing: 'antialiased',
                backgroundColor: palette.white,
                border: "1px solid " + palette.neutralLight,
                boxSizing: 'border-box',
                maxWidth: '320px',
                minWidth: '206px',
                userSelect: 'none',
                position: 'relative',
                selectors: (_a = {},
                    _a["." + _DocumentCardLocation_styles__WEBPACK_IMPORTED_MODULE_4__["DocumentCardLocationGlobalClassNames"].root + " + ." + _DocumentCardTitle_styles__WEBPACK_IMPORTED_MODULE_3__["DocumentCardTitleGlobalClassNames"].root] = {
                        paddingTop: '4px'
                    },
                    _a)
            },
            actionable && [
                classNames.rootActionable,
                {
                    selectors: {
                        ':hover': {
                            cursor: 'pointer',
                            borderColor: palette.neutralTertiaryAlt
                        },
                        ':hover:after': {
                            content: '" "',
                            position: 'absolute',
                            top: 0,
                            right: 0,
                            bottom: 0,
                            left: 0,
                            border: "1px solid " + palette.neutralTertiaryAlt,
                            pointerEvents: 'none'
                        }
                    }
                }
            ],
            compact && [
                classNames.rootCompact,
                {
                    display: 'flex',
                    maxWidth: '480px',
                    height: '108px',
                    selectors: (_b = {},
                        _b["." + _DocumentCardPreview_styles__WEBPACK_IMPORTED_MODULE_1__["DocumentCardPreviewGlobalClassNames"].root] = {
                            borderRight: "1px solid " + palette.neutralLight,
                            borderBottom: 0,
                            maxHeight: '106px',
                            maxWidth: '144px'
                        },
                        _b["." + _DocumentCardPreview_styles__WEBPACK_IMPORTED_MODULE_1__["DocumentCardPreviewGlobalClassNames"].icon] = {
                            maxHeight: '32px',
                            maxWidth: '32px'
                        },
                        _b["." + _DocumentCardActivity_styles__WEBPACK_IMPORTED_MODULE_2__["DocumentCardActivityGlobalClassNames"].root] = {
                            paddingBottom: '12px'
                        },
                        _b["." + _DocumentCardTitle_styles__WEBPACK_IMPORTED_MODULE_3__["DocumentCardTitleGlobalClassNames"].root] = {
                            paddingBottom: '12px 16px 8px 16px',
                            fontSize: fonts.mediumPlus.fontSize,
                            lineHeight: '16px'
                        },
                        _b)
                }
            ],
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCard.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardType", function() { return DocumentCardType; });
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardType;
(function (DocumentCardType) {
    /**
     * Standard DocumentCard.
     */
    DocumentCardType[DocumentCardType["normal"] = 0] = "normal";
    /**
     * Compact layout. Displays the preview beside the details, rather than above.
     */
    DocumentCardType[DocumentCardType["compact"] = 1] = "compact";
})(DocumentCardType || (DocumentCardType = {}));


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActions.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActionsBase", function() { return DocumentCardActionsBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Button.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardActionsBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardActionsBase, _super);
    function DocumentCardActionsBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardActionsBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, actions = _a.actions, views = _a.views, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            actions &&
                actions.map(function (action, index) {
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.action, key: index },
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, action))));
                }),
            views > 0 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.views },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], { iconName: "View", className: this._classNames.viewsIcon }),
                views))));
    };
    return DocumentCardActionsBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActions.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActions", function() { return DocumentCardActions; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardActions_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActions.base.js");
/* harmony import */ var _DocumentCardActions_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActions.styles.js");



var DocumentCardActions = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardActions_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardActionsBase"], _DocumentCardActions_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardActions' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActions.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var ACTION_SIZE = 34;
var HORIZONTAL_PADDING = 12;
var VERTICAL_PADDING = 4;
var GlobalClassNames = {
    root: 'ms-DocumentCardActions',
    action: 'ms-DocumentCardActions-action',
    views: 'ms-DocumentCardActions-views'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                height: ACTION_SIZE + "px",
                padding: VERTICAL_PADDING + "px " + HORIZONTAL_PADDING + "px",
                position: 'relative'
            },
            className
        ],
        action: [
            classNames.action,
            {
                float: 'left',
                marginRight: '4px',
                color: palette.neutralSecondary,
                cursor: 'pointer',
                selectors: {
                    '.ms-Button': {
                        fontSize: fonts.mediumPlus.fontSize,
                        height: ACTION_SIZE,
                        width: ACTION_SIZE
                    },
                    '.ms-Button:hover .ms-Button-icon': {
                        color: theme.semanticColors.buttonText,
                        cursor: 'pointer'
                    }
                }
            }
        ],
        views: [
            classNames.views,
            {
                textAlign: 'right',
                lineHeight: ACTION_SIZE
            }
        ],
        viewsIcon: {
            marginRight: '8px',
            fontSize: fonts.medium.fontSize,
            verticalAlign: 'top'
        }
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActivity.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivityBase", function() { return DocumentCardActivityBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _PersonaCoin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/PersonaCoin.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardActivityBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardActivityBase, _super);
    function DocumentCardActivityBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardActivityBase.prototype.render = function () {
        var _a = this.props, activity = _a.activity, people = _a.people, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            multiplePeople: people.length > 1
        });
        if (!people || people.length === 0) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            this._renderAvatars(people),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.details },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: this._classNames.name }, this._getNameString(people)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: this._classNames.activity }, activity))));
    };
    DocumentCardActivityBase.prototype._renderAvatars = function (people) {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.avatars },
            people.length > 1 ? this._renderAvatar(people[1]) : null,
            this._renderAvatar(people[0])));
    };
    DocumentCardActivityBase.prototype._renderAvatar = function (person) {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.avatar },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin__WEBPACK_IMPORTED_MODULE_4__["PersonaCoin"], { imageInitials: person.initials, text: person.name, imageUrl: person.profileImageSrc, initialsColor: person.initialsColor, allowPhoneInitials: person.allowPhoneInitials, role: "presentation", size: _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaSize"].size32 })));
    };
    DocumentCardActivityBase.prototype._getNameString = function (people) {
        var nameString = people[0].name;
        if (people.length >= 2) {
            nameString += ' +' + (people.length - 1);
        }
        return nameString;
    };
    return DocumentCardActivityBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActivity.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivity", function() { return DocumentCardActivity; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardActivity_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActivity.base.js");
/* harmony import */ var _DocumentCardActivity_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActivity.styles.js");



var DocumentCardActivity = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardActivity_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardActivityBase"], _DocumentCardActivity_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardActivity' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardActivity.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivityGlobalClassNames", function() { return DocumentCardActivityGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var VERTICAL_PADDING = 8;
var HORIZONTAL_PADDING = 16;
var IMAGE_SIZE = 32;
var PERSONA_TEXT_GUTTER = 8;
var DocumentCardActivityGlobalClassNames = {
    root: 'ms-DocumentCardActivity',
    multiplePeople: 'ms-DocumentCardActivity--multiplePeople',
    details: 'ms-DocumentCardActivity-details',
    name: 'ms-DocumentCardActivity-name',
    activity: 'ms-DocumentCardActivity-activity',
    avatars: 'ms-DocumentCardActivity-avatars',
    avatar: 'ms-DocumentCardActivity-avatar'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className, multiplePeople = props.multiplePeople;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(DocumentCardActivityGlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            multiplePeople && classNames.multiplePeople,
            {
                padding: VERTICAL_PADDING + "px " + HORIZONTAL_PADDING + "px",
                position: 'relative'
            },
            className
        ],
        avatars: [
            classNames.avatars,
            {
                marginLeft: '-2px',
                height: '32px'
            }
        ],
        avatar: [
            classNames.avatar,
            {
                display: 'inline-block',
                verticalAlign: 'top',
                position: 'relative',
                textAlign: 'center',
                width: IMAGE_SIZE,
                height: IMAGE_SIZE,
                selectors: {
                    '&:after': {
                        content: '" "',
                        position: 'absolute',
                        left: '-1px',
                        top: '-1px',
                        right: '-1px',
                        bottom: '-1px',
                        border: "2px solid " + palette.white,
                        borderRadius: '50%'
                    },
                    ':nth-of-type(2)': multiplePeople && {
                        marginLeft: '-16px'
                    }
                }
            }
        ],
        details: [
            classNames.details,
            {
                left: multiplePeople
                    ? HORIZONTAL_PADDING + IMAGE_SIZE * 1.5 + PERSONA_TEXT_GUTTER + "px"
                    : HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + "px",
                height: IMAGE_SIZE,
                position: 'absolute',
                top: VERTICAL_PADDING,
                width: "calc(100% - " + (HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + HORIZONTAL_PADDING) + "px)"
            }
        ],
        name: [
            classNames.name,
            {
                display: 'block',
                fontSize: fonts.small.fontSize,
                lineHeight: '15px',
                height: '15px',
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                color: palette.neutralPrimary,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
            }
        ],
        activity: [
            classNames.activity,
            {
                display: 'block',
                fontSize: fonts.small.fontSize,
                lineHeight: '15px',
                height: '15px',
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                color: palette.neutralSecondary
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardDetails.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetailsBase", function() { return DocumentCardDetailsBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardDetailsBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardDetailsBase, _super);
    function DocumentCardDetailsBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardDetailsBase.prototype.render = function () {
        var _a = this.props, children = _a.children, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root }, children);
    };
    return DocumentCardDetailsBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardDetails.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetails", function() { return DocumentCardDetails; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardDetails_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardDetails.base.js");
/* harmony import */ var _DocumentCardDetails_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardDetails.styles.js");



var DocumentCardDetails = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardDetails_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardDetailsBase"], _DocumentCardDetails_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardDetails' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardDetails.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-DocumentCardDetails'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                display: 'flex',
                flexDirection: 'column',
                flex: 1,
                justifyContent: 'space-between',
                overflow: 'hidden'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardImage.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImageBase", function() { return DocumentCardImageBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Image.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardImageBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardImageBase, _super);
    function DocumentCardImageBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onImageLoad = function () {
            _this.setState({ imageHasLoaded: true });
        };
        _this.state = { imageHasLoaded: false };
        return _this;
    }
    DocumentCardImageBase.prototype.render = function () {
        var _a = this.props, styles = _a.styles, width = _a.width, height = _a.height, imageFit = _a.imageFit, imageSrc = _a.imageSrc;
        this._classNames = getClassNames(styles, this.props);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            imageSrc && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_3__["Image"], { width: width, height: height, imageFit: imageFit, src: imageSrc, role: "presentation", alt: "", onLoad: this._onImageLoad })),
            this.state.imageHasLoaded ? this._renderCornerIcon() : this._renderCenterIcon()));
    };
    DocumentCardImageBase.prototype._renderCenterIcon = function () {
        var iconProps = this.props.iconProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.centeredIconWrapper },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_2__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.centeredIcon }, iconProps))));
    };
    DocumentCardImageBase.prototype._renderCornerIcon = function () {
        var iconProps = this.props.iconProps;
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_2__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.cornerIcon }, iconProps));
    };
    return DocumentCardImageBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_4__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardImage.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImage", function() { return DocumentCardImage; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardImage_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardImage.base.js");
/* harmony import */ var _DocumentCardImage_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardImage.styles.js");



var DocumentCardImage = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardImage_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardImageBase"], _DocumentCardImage_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardImage' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardImage.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var centeredIconSize = '42px';
var cornerIconSize = '32px';
var getStyles = function (props) {
    var theme = props.theme, className = props.className, height = props.height, width = props.width;
    var palette = theme.palette;
    return {
        root: [
            {
                borderBottom: "1px solid " + palette.neutralLight,
                position: 'relative',
                backgroundColor: palette.neutralLighterAlt,
                overflow: "hidden",
                height: height && height + "px",
                width: width && width + "px"
            },
            className
        ],
        centeredIcon: [
            {
                height: centeredIconSize,
                width: centeredIconSize,
                fontSize: centeredIconSize
            }
        ],
        centeredIconWrapper: [
            {
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                height: '100%',
                width: '100%',
                position: 'absolute',
                top: 0,
                left: 0
            }
        ],
        cornerIcon: [
            {
                left: '10px',
                bottom: '10px',
                height: cornerIconSize,
                width: cornerIconSize,
                fontSize: cornerIconSize,
                position: 'absolute',
                overflow: 'visible'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLocation.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocationBase", function() { return DocumentCardLocationBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardLocationBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardLocationBase, _super);
    function DocumentCardLocationBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardLocationBase.prototype.render = function () {
        var _a = this.props, location = _a.location, locationHref = _a.locationHref, ariaLabel = _a.ariaLabel, onClick = _a.onClick, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("a", { className: this._classNames.root, href: locationHref, onClick: onClick, "aria-label": ariaLabel }, location));
    };
    return DocumentCardLocationBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLocation.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocation", function() { return DocumentCardLocation; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardLocation_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLocation.base.js");
/* harmony import */ var _DocumentCardLocation_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLocation.styles.js");



var DocumentCardLocation = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardLocation_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardLocationBase"], _DocumentCardLocation_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardLocation' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLocation.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocationGlobalClassNames", function() { return DocumentCardLocationGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var DocumentCardLocationGlobalClassNames = {
    root: 'ms-DocumentCardLocation'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(DocumentCardLocationGlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.small,
            {
                color: palette.neutralPrimary,
                display: 'block',
                padding: '8px 16px',
                position: 'relative',
                textDecoration: 'none',
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                selectors: {
                    ':hover': {
                        color: palette.themePrimary,
                        cursor: 'pointer'
                    }
                }
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLogo.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogoBase", function() { return DocumentCardLogoBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardLogoBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardLogoBase, _super);
    function DocumentCardLogoBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardLogoBase.prototype.render = function () {
        var _a = this.props, logoIcon = _a.logoIcon, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_2__["Icon"], { iconName: logoIcon })));
    };
    return DocumentCardLogoBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLogo.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogo", function() { return DocumentCardLogo; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardLogo_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLogo.base.js");
/* harmony import */ var _DocumentCardLogo_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLogo.styles.js");



var DocumentCardLogo = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardLogo_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardLogoBase"], _DocumentCardLogo_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardLogo' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardLogo.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-DocumentCardLogo'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                fontSize: fonts.xxLargePlus.fontSize,
                color: palette.themePrimary,
                display: 'block',
                padding: '16px 16px 0 16px'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardPreview.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreviewBase", function() { return DocumentCardPreviewBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Image.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Link.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");






var LIST_ITEM_COUNT = 3;
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardPreviewBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardPreviewBase, _super);
    function DocumentCardPreviewBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._renderPreviewList = function (previewImages) {
            var getOverflowDocumentCountText = _this.props.getOverflowDocumentCountText;
            // Determine how many documents we won't be showing
            var overflowDocumentCount = previewImages.length - LIST_ITEM_COUNT;
            // Determine the overflow text that will be rendered after the preview list.
            var overflowText = overflowDocumentCount
                ? getOverflowDocumentCountText
                    ? getOverflowDocumentCountText(overflowDocumentCount)
                    : '+' + overflowDocumentCount
                : null;
            // Create list items for the documents to be shown
            var fileListItems = previewImages.slice(0, LIST_ITEM_COUNT).map(function (file, fileIndex) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { key: fileIndex },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_3__["Image"], { className: _this._classNames.fileListIcon, src: file.iconSrc, role: "presentation", alt: "", width: "16px", height: "16px" }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Link__WEBPACK_IMPORTED_MODULE_4__["Link"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (file.linkProps, { href: file.url || (file.linkProps && file.linkProps.href) })), file.name))); });
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ul", { className: _this._classNames.fileList }, fileListItems),
                overflowText && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.fileListOverflowText }, overflowText)));
        };
        return _this;
    }
    DocumentCardPreviewBase.prototype.render = function () {
        var _a = this.props, previewImages = _a.previewImages, styles = _a.styles, theme = _a.theme, className = _a.className;
        var style, preview;
        var isFileList = previewImages.length > 1;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            isFileList: isFileList
        });
        if (previewImages.length > 1) {
            // Render a list of files
            preview = this._renderPreviewList(previewImages);
        }
        else if (previewImages.length === 1) {
            // Render a single preview
            preview = this._renderPreviewImage(previewImages[0]);
            // Override the border color if an accent color was provided
            if (previewImages[0].accentColor) {
                style = {
                    borderBottomColor: previewImages[0].accentColor
                };
            }
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, style: style }, preview));
    };
    DocumentCardPreviewBase.prototype._renderPreviewImage = function (previewImage) {
        var width = previewImage.width, height = previewImage.height, imageFit = previewImage.imageFit, previewIconProps = previewImage.previewIconProps, previewIconContainerClass = previewImage.previewIconContainerClass;
        if (previewIconProps) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["css"])(this._classNames.previewIcon, previewIconContainerClass), style: { width: width, height: height } },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_2__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, previewIconProps))));
        }
        var image = react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_3__["Image"], { width: width, height: height, imageFit: imageFit, src: previewImage.previewImageSrc, role: "presentation", alt: "" });
        var icon;
        if (previewImage.iconSrc) {
            icon = react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_3__["Image"], { className: this._classNames.icon, src: previewImage.iconSrc, role: "presentation", alt: "" });
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null,
            image,
            icon));
    };
    return DocumentCardPreviewBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_5__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardPreview.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreview", function() { return DocumentCardPreview; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardPreview_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardPreview.base.js");
/* harmony import */ var _DocumentCardPreview_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardPreview.styles.js");



var DocumentCardPreview = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardPreview_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardPreviewBase"], _DocumentCardPreview_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardPreview' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardPreview.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreviewGlobalClassNames", function() { return DocumentCardPreviewGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var DocumentCardPreviewGlobalClassNames = {
    root: 'ms-DocumentCardPreview',
    icon: 'ms-DocumentCardPreview-icon',
    iconContainer: 'ms-DocumentCardPreview-iconContainer'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className, isFileList = props.isFileList;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(DocumentCardPreviewGlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.small,
            {
                borderBottom: "1px solid " + palette.neutralLight,
                position: 'relative',
                backgroundColor: isFileList ? palette.white : palette.neutralLighterAlt,
                overflow: "hidden"
            },
            className
        ],
        previewIcon: [
            classNames.iconContainer,
            {
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                height: '100%'
            }
        ],
        icon: [
            classNames.icon,
            {
                left: '10px',
                bottom: '10px',
                position: 'absolute'
            }
        ],
        fileList: {
            padding: '16px 16px 0 16px',
            listStyleType: 'none',
            margin: 0,
            selectors: {
                li: {
                    height: '16px',
                    lineHeight: '16px',
                    marginBottom: '8px',
                    overflow: 'hidden',
                    paddingLeft: '24px',
                    position: 'relative',
                    textOverflow: 'ellipsis',
                    whiteSpace: 'nowrap'
                },
                a: {
                    textDecoration: 'none',
                    color: palette.neutralDark,
                    selectors: {
                        ':hover': {
                            color: palette.themePrimary
                        }
                    }
                }
            }
        },
        fileListIcon: {
            left: 0,
            position: 'absolute',
            top: 0
        },
        fileListOverflowText: {
            padding: '0px 16px 8px 16px',
            display: 'block'
        }
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardStatus.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatusBase", function() { return DocumentCardStatusBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardStatusBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardStatusBase, _super);
    function DocumentCardStatusBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    DocumentCardStatusBase.prototype.render = function () {
        var _a = this.props, statusIcon = _a.statusIcon, status = _a.status, styles = _a.styles, theme = _a.theme, className = _a.className;
        var iconProps = {
            iconName: statusIcon,
            styles: {
                root: { padding: '8px' }
            }
        };
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            statusIcon && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconProps)),
            status));
    };
    return DocumentCardStatusBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardStatus.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatus", function() { return DocumentCardStatus; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardStatus_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardStatus.base.js");
/* harmony import */ var _DocumentCardStatus_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardStatus.styles.js");



var DocumentCardStatus = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardStatus_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardStatusBase"], _DocumentCardStatus_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardStatus' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardStatus.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-DocumentCardStatus'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.medium,
            {
                margin: '8px 16px',
                color: palette.neutralPrimary,
                backgroundColor: palette.neutralLighter,
                height: '32px'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardTitle.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitleBase", function() { return DocumentCardTitleBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD = 5;
/**
 * {@docCategory DocumentCard}
 */
var DocumentCardTitleBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DocumentCardTitleBase, _super);
    function DocumentCardTitleBase(props) {
        var _this = _super.call(this, props) || this;
        _this._titleElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._measureTitleElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // Truncate logic here way can't handle the case that chars with different widths are mixed very well, let _shrinkTitle take care of that.
        _this._truncateTitle = function () {
            if (!_this.state.needMeasurement) {
                return;
            }
            _this._async.requestAnimationFrame(_this._truncateWhenInAnimation);
        };
        _this._truncateWhenInAnimation = function () {
            var originalTitle = _this.props.title;
            var element = _this._measureTitleElement.current;
            if (element) {
                var style = getComputedStyle(element);
                if (style.width && style.lineHeight && style.height) {
                    var clientWidth = element.clientWidth, scrollWidth = element.scrollWidth;
                    var lines = Math.floor((parseInt(style.height, 10) + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD) / parseInt(style.lineHeight, 10));
                    // Use overflow to predict truncated length.
                    // Take an example.The text is: A text with A very long text that need to be truncated.ppt
                    // if container is like
                    // |A text with A very| long text that need to be truncated.ppt
                    // The scroll width is 58, (take two | out of length)
                    // The client width is 18
                    // the overflow rate is scrollWidth/clientWidth which should be close to length(overflowText)/length(visualText)
                    // And the length of remaining text should be truncated is (original Length)/(58/18) -3 = 15.
                    // So that the logic can predict truncated text well.
                    // first piece will be `A text `, * second piece will be `ated.ppt`
                    // |A text ...ated.ppt|
                    var overFlowRate = scrollWidth / (parseInt(style.width, 10) * lines);
                    if (overFlowRate > 1) {
                        var truncatedLength = originalTitle.length / overFlowRate - 3 /** Saved for separator */;
                        return _this.setState({
                            truncatedTitleFirstPiece: originalTitle.slice(0, truncatedLength / 2),
                            truncatedTitleSecondPiece: originalTitle.slice(originalTitle.length - truncatedLength / 2),
                            clientWidth: clientWidth,
                            needMeasurement: false
                        });
                    }
                }
            }
            return _this.setState({ needMeasurement: false });
        };
        _this._shrinkTitle = function () {
            var _a = _this.state, truncatedTitleFirstPiece = _a.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _a.truncatedTitleSecondPiece;
            if (truncatedTitleFirstPiece && truncatedTitleSecondPiece) {
                var titleElement = _this._titleElement.current;
                if (!titleElement) {
                    return;
                }
                if (titleElement.scrollHeight > titleElement.clientHeight + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD ||
                    titleElement.scrollWidth > titleElement.clientWidth) {
                    _this.setState({
                        truncatedTitleFirstPiece: truncatedTitleFirstPiece.slice(0, truncatedTitleFirstPiece.length - 1),
                        truncatedTitleSecondPiece: truncatedTitleSecondPiece.slice(1)
                    });
                }
            }
        };
        _this.state = {
            truncatedTitleFirstPiece: '',
            truncatedTitleSecondPiece: '',
            previousTitle: props.title,
            needMeasurement: !!props.shouldTruncate
        };
        return _this;
    }
    DocumentCardTitleBase.prototype.componentDidUpdate = function () {
        if (this.props.title !== this.state.previousTitle) {
            this.setState({
                truncatedTitleFirstPiece: undefined,
                truncatedTitleSecondPiece: undefined,
                clientWidth: undefined,
                previousTitle: this.props.title,
                needMeasurement: !!this.props.shouldTruncate
            });
        }
        this._events.off(window, 'resize', this._updateTruncation);
        if (this.props.shouldTruncate) {
            this._truncateTitle();
            requestAnimationFrame(this._shrinkTitle);
            this._events.on(window, 'resize', this._updateTruncation);
        }
    };
    DocumentCardTitleBase.prototype.componentDidMount = function () {
        if (this.props.shouldTruncate) {
            this._truncateTitle();
            this._events.on(window, 'resize', this._updateTruncation);
        }
    };
    DocumentCardTitleBase.prototype.componentWillUnmount = function () {
        this._events.off(window, 'resize', this._updateTruncation);
    };
    DocumentCardTitleBase.prototype.render = function () {
        var _a = this.props, title = _a.title, shouldTruncate = _a.shouldTruncate, showAsSecondaryTitle = _a.showAsSecondaryTitle, styles = _a.styles, theme = _a.theme, className = _a.className;
        var _b = this.state, truncatedTitleFirstPiece = _b.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _b.truncatedTitleSecondPiece, needMeasurement = _b.needMeasurement;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            showAsSecondaryTitle: showAsSecondaryTitle
        });
        var documentCardTitle;
        if (needMeasurement) {
            documentCardTitle = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, ref: this._measureTitleElement, title: title, style: { whiteSpace: 'nowrap' } }, title));
        }
        else if (shouldTruncate && truncatedTitleFirstPiece && truncatedTitleSecondPiece) {
            documentCardTitle = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, ref: this._titleElement, title: title },
                truncatedTitleFirstPiece,
                "\u2026",
                truncatedTitleSecondPiece));
        }
        else {
            documentCardTitle = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, ref: this._titleElement, title: title }, title));
        }
        return documentCardTitle;
    };
    DocumentCardTitleBase.prototype._updateTruncation = function () {
        var _this = this;
        this._async.requestAnimationFrame(function () {
            // Only update truncation if the title's size has changed since the last time we truncated
            if (_this._titleElement.current) {
                var clientWidth = _this._titleElement.current.clientWidth;
                // Throttle truncation so that it doesn't happen during a window resize
                clearTimeout(_this._titleTruncationTimer);
                if (_this.state.clientWidth !== clientWidth) {
                    _this._titleTruncationTimer = _this._async.setTimeout(function () {
                        return _this.setState({
                            truncatedTitleFirstPiece: undefined,
                            truncatedTitleSecondPiece: undefined,
                            needMeasurement: true
                        });
                    }, 250);
                }
            }
        });
    };
    return DocumentCardTitleBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardTitle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitle", function() { return DocumentCardTitle; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DocumentCardTitle_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardTitle.base.js");
/* harmony import */ var _DocumentCardTitle_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardTitle.styles.js");



var DocumentCardTitle = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_DocumentCardTitle_base__WEBPACK_IMPORTED_MODULE_1__["DocumentCardTitleBase"], _DocumentCardTitle_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'DocumentCardTitle' });


/***/ }),

/***/ "./lib/components/DocumentCard/DocumentCardTitle.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitleGlobalClassNames", function() { return DocumentCardTitleGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var DocumentCardTitleGlobalClassNames = {
    root: 'ms-DocumentCardTitle'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className, showAsSecondaryTitle = props.showAsSecondaryTitle;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(DocumentCardTitleGlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            showAsSecondaryTitle ? fonts.medium : fonts.large,
            {
                padding: '8px 16px',
                display: 'block',
                overflow: 'hidden',
                wordWrap: 'break-word',
                height: showAsSecondaryTitle ? '45px' : '38px',
                lineHeight: showAsSecondaryTitle ? '18px' : '21px',
                color: showAsSecondaryTitle ? palette.neutralSecondary : palette.neutralPrimary
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/DocumentCard/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DocumentCard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/DocumentCard/DocumentCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCard", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_0__["DocumentCard"]; });

/* harmony import */ var _DocumentCard_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/DocumentCard/DocumentCard.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardType", function() { return _DocumentCard_types__WEBPACK_IMPORTED_MODULE_1__["DocumentCardType"]; });

/* harmony import */ var _DocumentCardActions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActions.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActions", function() { return _DocumentCardActions__WEBPACK_IMPORTED_MODULE_2__["DocumentCardActions"]; });

/* harmony import */ var _DocumentCardActivity__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardActivity.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivity", function() { return _DocumentCardActivity__WEBPACK_IMPORTED_MODULE_3__["DocumentCardActivity"]; });

/* harmony import */ var _DocumentCardDetails__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardDetails.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetails", function() { return _DocumentCardDetails__WEBPACK_IMPORTED_MODULE_4__["DocumentCardDetails"]; });

/* harmony import */ var _DocumentCardLocation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLocation.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocation", function() { return _DocumentCardLocation__WEBPACK_IMPORTED_MODULE_5__["DocumentCardLocation"]; });

/* harmony import */ var _DocumentCardPreview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardPreview.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreview", function() { return _DocumentCardPreview__WEBPACK_IMPORTED_MODULE_6__["DocumentCardPreview"]; });

/* harmony import */ var _DocumentCardImage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardImage.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImage", function() { return _DocumentCardImage__WEBPACK_IMPORTED_MODULE_7__["DocumentCardImage"]; });

/* harmony import */ var _DocumentCardTitle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardTitle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitle", function() { return _DocumentCardTitle__WEBPACK_IMPORTED_MODULE_8__["DocumentCardTitle"]; });

/* harmony import */ var _DocumentCardLogo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardLogo.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogo", function() { return _DocumentCardLogo__WEBPACK_IMPORTED_MODULE_9__["DocumentCardLogo"]; });

/* harmony import */ var _DocumentCardStatus__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/DocumentCard/DocumentCardStatus.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatus", function() { return _DocumentCardStatus__WEBPACK_IMPORTED_MODULE_10__["DocumentCardStatus"]; });














/***/ }),

/***/ "./lib/components/Dropdown/Dropdown.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownBase", function() { return DropdownBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Checkbox.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _Dropdown_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Dropdown/Dropdown.types.js");
/* harmony import */ var _utilities_DropdownSizePosCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/Dropdown/utilities/DropdownSizePosCache.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/KeytipData.js");
/* harmony import */ var _Panel__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/Panel.js");
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony import */ var _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./lib/utilities/selectableOption/index.js");
















var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var DropdownBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DropdownBase, _super);
    function DropdownBase(props) {
        var _this = _super.call(this, props) || this;
        _this._host = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._dropDown = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._scrollIdleDelay = 250 /* ms */;
        _this._sizePosCache = new _utilities_DropdownSizePosCache__WEBPACK_IMPORTED_MODULE_8__["DropdownSizePosCache"]();
        _this._requestAnimationFrame = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["safeRequestAnimationFrame"])(_this);
        _this._onChange = function (event, options, index, checked, multiSelect) {
            var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;
            if (onChange || onChanged) {
                // for single-select, option passed in will always be selected.
                // for multi-select, flip the checked value
                var changedOpt = multiSelect ? tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, options[index], { selected: !checked }) : options[index];
                onChange && onChange(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, event, { target: _this._dropDown.current }), changedOpt, index);
                onChanged && onChanged(changedOpt, index);
            }
        };
        /** Render text in dropdown input */
        _this._onRenderTitle = function (items) {
            var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;
            var displayTxt = items.map(function (i) { return i.text; }).join(multiSelectDelimiter);
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, displayTxt);
        };
        /** Render placeholder text in dropdown input */
        _this._onRenderPlaceholder = function (props) {
            if (!_this._placeholder) {
                return null;
            }
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, _this._placeholder);
        };
        /** Render Callout or Panel container and pass in list */
        _this._onRenderContainer = function (props) {
            var calloutProps = props.calloutProps, panelProps = props.panelProps;
            var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;
            var isSmall = responsiveMode <= _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_14__["ResponsiveMode"].medium;
            var panelStyles = _this._classNames.subComponentStyles
                ? _this._classNames.subComponentStyles.panel
                : undefined;
            return isSmall ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Panel__WEBPACK_IMPORTED_MODULE_13__["Panel"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, hasCloseButton: false, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_3__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"].bottomLeftEdge }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned, calloutWidth: dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0) }), _this._renderFocusableList(props)));
        };
        /** Render Caret Down Icon */
        _this._onRenderCaretDown = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_10__["Icon"], { className: _this._classNames.caretDown, iconName: "ChevronDown", "aria-hidden": true });
        };
        /** Render List of items */
        _this._onRenderList = function (props) {
            var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, props.options.map(function (item, index) { return onRenderItem(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index }), _this._onRenderItem); }));
        };
        _this._onRenderItem = function (item) {
            switch (item.itemType) {
                case _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_15__["SelectableOptionMenuItemType"].Divider:
                    return _this._renderSeparator(item);
                case _utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_15__["SelectableOptionMenuItemType"].Header:
                    return _this._renderHeader(item);
                default:
                    return _this._renderOption(item);
            }
        };
        _this._renderOption = function (item) {
            var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOption : _a;
            var _b = _this.state.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;
            var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;
            // select the right className based on the combination of selected/disabled
            var itemClassName = item.hidden // predicate: item hidden
                ? _this._classNames.dropdownItemHidden
                : isItemSelected && item.disabled === true // predicate: both selected and disabled
                    ? _this._classNames.dropdownItemSelectedAndDisabled
                    : isItemSelected // predicate: selected only
                        ? _this._classNames.dropdownItemSelected
                        : item.disabled === true // predicate: disabled only
                            ? _this._classNames.dropdownItemDisabled
                            : _this._classNames.dropdownItem;
            var _c = item.title, title = _c === void 0 ? item.text : _c;
            var multiSelectItemStyles = _this._classNames.subComponentStyles
                ? _this._classNames.subComponentStyles.multiSelectItem
                : undefined;
            return !_this.props.multiSelect ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_5__["CommandButton"], { id: _this._listId + item.index, key: item.key, "data-index": item.index, "data-is-focusable": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: "option", "aria-selected": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title }, onRenderOption(item, _this._onRenderOption))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Checkbox__WEBPACK_IMPORTED_MODULE_4__["Checkbox"], { id: _this._listId + item.index, key: item.key, "data-index": item.index, "data-is-focusable": !item.disabled, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: {
                    onMouseEnter: _this._onItemMouseEnter.bind(_this, item),
                    onMouseLeave: _this._onMouseItemLeave.bind(_this, item),
                    onMouseMove: _this._onItemMouseMove.bind(_this, item)
                }, label: item.text, title: item.title ? item.title : item.text, onRenderLabel: _this._onRenderItemLabel.bind(_this, item), className: itemClassName, role: "option", "aria-selected": isItemSelected ? 'true' : 'false', checked: isItemSelected, styles: multiSelectItemStyles }));
        };
        /** Render content of item (i.e. text/icon inside of button) */
        _this._onRenderOption = function (item) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.dropdownOptionText }, item.text);
        };
        /** Render custom label for drop down item */
        _this._onRenderItemLabel = function (item) {
            var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOption : _a;
            return onRenderOption(item, _this._onRenderOption);
        };
        _this._onPositioned = function (positions) {
            if (_this._focusZone.current) {
                // Focusing an element can trigger a reflow. Making this wait until there is an animation
                // frame can improve perf significantly.
                _this._requestAnimationFrame(function () {
                    var selectedIndices = _this.state.selectedIndices;
                    if (_this._focusZone.current) {
                        if (selectedIndices && selectedIndices[0] && !_this.props.options[selectedIndices[0]].disabled) {
                            var element = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])().querySelector("#" + _this._id + "-list" + selectedIndices[0]);
                            _this._focusZone.current.focusElement(element);
                        }
                        else {
                            _this._focusZone.current.focus();
                        }
                    }
                });
            }
            if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {
                _this.setState({
                    calloutRenderEdge: positions.targetEdge
                });
            }
        };
        _this._onItemClick = function (item) {
            return function (event) {
                if (!item.disabled) {
                    _this.setSelectedIndex(event, item.index);
                    if (!_this.props.multiSelect) {
                        // only close the callout when it's in single-select mode
                        _this.setState({
                            isOpen: false
                        });
                    }
                }
            };
        };
        /**
         * Scroll handler for the callout to make sure the mouse events
         * for updating focus are not interacting during scroll
         */
        _this._onScroll = function () {
            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {
                clearTimeout(_this._scrollIdleTimeoutId);
                _this._scrollIdleTimeoutId = undefined;
            }
            else {
                _this._isScrollIdle = false;
            }
            _this._scrollIdleTimeoutId = setTimeout(function () {
                _this._isScrollIdle = true;
            }, _this._scrollIdleDelay);
        };
        _this._onMouseItemLeave = function (item, ev) {
            if (_this._shouldIgnoreMouseEvent()) {
                return;
            }
            /**
             * IE11 focus() method forces parents to scroll to top of element.
             * Edge and IE expose a setActive() function for focusable divs that
             * sets the page focus but does not scroll the parent element.
             */
            if (_this._host.current) {
                if (_this._host.current.setActive) {
                    try {
                        _this._host.current.setActive();
                    }
                    catch (e) {
                        /* no-op */
                    }
                }
                else {
                    _this._host.current.focus();
                }
            }
        };
        _this._onDismiss = function () {
            _this.setState({ isOpen: false });
            if (_this._dropDown.current) {
                _this._dropDown.current.focus();
            }
        };
        _this._onDropdownBlur = function (ev) {
            // If Dropdown disabled do not proceed with this logic.
            var disabled = _this._isDisabled();
            if (disabled) {
                return;
            }
            // hasFocus tracks whether the root element has focus so always update the state.
            _this.setState({ hasFocus: false });
            if (_this.state.isOpen) {
                // Do not onBlur when the callout is opened
                return;
            }
            if (_this.props.onBlur) {
                _this.props.onBlur(ev);
            }
        };
        _this._onDropdownKeyDown = function (ev) {
            // If Dropdown disabled do not process any keyboard events.
            var disabled = _this._isDisabled();
            if (disabled) {
                return;
            }
            // Take note if we are processing an alt (option) or meta (command) keydown.
            // See comment in _shouldHandleKeyUp for reasoning.
            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);
            if (_this.props.onKeyDown) {
                _this.props.onKeyDown(ev);
                if (ev.defaultPrevented) {
                    return;
                }
            }
            var newIndex;
            var selectedIndex = _this.state.selectedIndices.length ? _this.state.selectedIndices[0] : -1;
            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;
            var isOpen = _this.state.isOpen;
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter:
                    _this.setState({
                        isOpen: !isOpen
                    });
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    if (!isOpen) {
                        return;
                    }
                    _this.setState({
                        isOpen: false
                    });
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up:
                    if (containsExpandCollapseModifier) {
                        if (isOpen) {
                            _this.setState({ isOpen: false });
                            break;
                        }
                        return;
                    }
                    if (_this.props.multiSelect) {
                        _this.setState({ isOpen: true });
                    }
                    else if (!_this._isDisabled()) {
                        newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down:
                    if (containsExpandCollapseModifier) {
                        ev.stopPropagation();
                        ev.preventDefault();
                    }
                    if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {
                        _this.setState({ isOpen: true });
                    }
                    else if (!_this._isDisabled()) {
                        newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].home:
                    if (!_this.props.multiSelect) {
                        newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].end:
                    if (!_this.props.multiSelect) {
                        newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space:
                    // event handled in _onDropdownKeyUp
                    break;
                default:
                    return;
            }
            if (newIndex !== selectedIndex) {
                ev.stopPropagation();
                ev.preventDefault();
            }
        };
        _this._onDropdownKeyUp = function (ev) {
            // If Dropdown disabled do not process any keyboard events.
            var disabled = _this._isDisabled();
            if (disabled) {
                return;
            }
            var shouldHandleKey = _this._shouldHandleKeyUp(ev);
            var isOpen = _this.state.isOpen;
            if (_this.props.onKeyUp) {
                _this.props.onKeyUp(ev);
                if (ev.preventDefault) {
                    return;
                }
            }
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space:
                    _this.setState({
                        isOpen: !isOpen
                    });
                    break;
                default:
                    if (shouldHandleKey && isOpen) {
                        _this.setState({ isOpen: false });
                    }
                    return;
            }
            ev.stopPropagation();
            ev.preventDefault();
        };
        _this._onZoneKeyDown = function (ev) {
            var elementToFocus;
            // Take note if we are processing an alt (option) or meta (command) keydown.
            // See comment in _shouldHandleKeyUp for reasoning.
            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);
            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up:
                    if (containsExpandCollapseModifier) {
                        _this.setState({ isOpen: false });
                    }
                    else {
                        if (_this._host.current) {
                            elementToFocus = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getLastFocusable"])(_this._host.current, _this._host.current.lastChild, true);
                        }
                    }
                    break;
                // All directional keystrokes should be canceled when the zone is rendered.
                // This avoids the body scroll from reacting and thus dismissing the dropdown.
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].home:
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].end:
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].pageUp:
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].pageDown:
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down:
                    if (!containsExpandCollapseModifier && _this._host.current) {
                        elementToFocus = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getFirstFocusable"])(_this._host.current, _this._host.current.firstChild, true);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    _this.setState({ isOpen: false });
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].tab:
                    _this.setState({ isOpen: false });
                    return;
                default:
                    return;
            }
            if (elementToFocus) {
                elementToFocus.focus();
            }
            ev.stopPropagation();
            ev.preventDefault();
        };
        _this._onZoneKeyUp = function (ev) {
            var shouldHandleKey = _this._shouldHandleKeyUp(ev);
            if (shouldHandleKey && _this.state.isOpen) {
                _this.setState({ isOpen: false });
                ev.preventDefault();
            }
        };
        _this._onDropdownClick = function (ev) {
            if (_this.props.onClick) {
                _this.props.onClick(ev);
                if (ev.preventDefault) {
                    return;
                }
            }
            var isOpen = _this.state.isOpen;
            var disabled = _this._isDisabled();
            if (!disabled && !_this._shouldOpenOnFocus()) {
                _this.setState({
                    isOpen: !isOpen
                });
            }
            _this._isFocusedByClick = false; // reset
        };
        _this._onDropdownMouseDown = function () {
            _this._isFocusedByClick = true;
        };
        _this._onFocus = function (ev) {
            var _a = _this.state, isOpen = _a.isOpen, selectedIndices = _a.selectedIndices;
            var multiSelect = _this.props.multiSelect;
            var disabled = _this._isDisabled();
            if (!disabled) {
                if (!_this._isFocusedByClick && !isOpen && selectedIndices.length === 0 && !multiSelect) {
                    // Per aria: https://www.w3.org/TR/wai-aria-practices-1.1/#listbox_kbd_interaction
                    _this._moveIndex(ev, 1, 0, -1);
                }
                if (_this.props.onFocus) {
                    _this.props.onFocus(ev);
                }
                var state = { hasFocus: true };
                if (_this._shouldOpenOnFocus()) {
                    state.isOpen = true;
                }
                _this.setState(state);
            }
        };
        /**
         * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.
         * This helper method avoids all the repetition.
         */
        _this._isDisabled = function () {
            var disabled = _this.props.disabled;
            var isDisabled = _this.props.isDisabled;
            // Remove this deprecation workaround at 1.0.0
            if (isDisabled !== undefined) {
                disabled = isDisabled;
            }
            return disabled;
        };
        _this._onRenderLabel = function (props) {
            var label = props.label, required = props.required, disabled = props.disabled;
            var labelStyles = _this._classNames.subComponentStyles
                ? _this._classNames.subComponentStyles.label
                : undefined;
            return label ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_11__["Label"], { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnDeprecations"])('Dropdown', props, {
                isDisabled: 'disabled',
                onChanged: 'onChange',
                placeHolder: 'placeholder',
                onRenderPlaceHolder: 'onRenderPlaceholder'
            });
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnMutuallyExclusive"])('Dropdown', props, {
                defaultSelectedKey: 'selectedKey',
                defaultSelectedKeys: 'selectedKeys',
                selectedKeys: 'selectedKey',
                multiSelect: 'defaultSelectedKey',
                selectedKey: 'multiSelect'
            });
        }
        _this._id = props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Dropdown');
        _this._labelId = _this._id + '-label';
        _this._listId = _this._id + '-list';
        _this._optionId = _this._id + '-option';
        _this._isScrollIdle = true;
        var selectedIndices;
        if (_this.props.multiSelect) {
            var selectedKeys = props.defaultSelectedKeys !== undefined ? props.defaultSelectedKeys : props.selectedKeys;
            selectedIndices = _this._getSelectedIndexes(props.options, selectedKeys);
        }
        else {
            var selectedKey = props.defaultSelectedKey !== undefined ? props.defaultSelectedKey : props.selectedKey;
            selectedIndices = _this._getSelectedIndexes(props.options, selectedKey);
            _this._sizePosCache.updateOptions(props.options);
        }
        _this.state = {
            isOpen: false,
            selectedIndices: selectedIndices,
            hasFocus: false,
            calloutRenderEdge: undefined
        };
        return _this;
    }
    Object.defineProperty(DropdownBase.prototype, "selectedOptions", {
        /**
         * All selected options
         */
        get: function () {
            var options = this.props.options;
            var selectedIndices = this.state.selectedIndices;
            return Object(_utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_15__["getAllSelectedOptions"])(options, selectedIndices);
        },
        enumerable: true,
        configurable: true
    });
    DropdownBase.prototype.componentWillUnmount = function () {
        clearTimeout(this._scrollIdleTimeoutId);
    };
    // tslint:disable-next-line function-name
    DropdownBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        // In controlled component usage where selectedKey is provided, update the selectedIndex
        // state if the key or options change.
        var selectedKeyProp;
        // this does a shallow compare (assumes options are pure), for the purposes of determining whether
        // defaultSelectedKey/defaultSelectedKeys are respected.
        var didOptionsChange = newProps.options !== this.props.options;
        if (newProps.multiSelect) {
            if (didOptionsChange && newProps.defaultSelectedKeys !== undefined) {
                selectedKeyProp = 'defaultSelectedKeys';
            }
            else {
                selectedKeyProp = 'selectedKeys';
            }
        }
        else {
            if (didOptionsChange && newProps.defaultSelectedKey !== undefined) {
                selectedKeyProp = 'defaultSelectedKey';
            }
            else {
                selectedKeyProp = 'selectedKey';
            }
        }
        if (newProps[selectedKeyProp] !== undefined && (newProps[selectedKeyProp] !== this.props[selectedKeyProp] || didOptionsChange)) {
            this.setState({
                selectedIndices: this._getSelectedIndexes(newProps.options, newProps[selectedKeyProp])
            });
        }
        if (newProps.options !== this.props.options && // preexisting code assumes purity of the options...
            !newProps.multiSelect // only relevant in single selection
        ) {
            this._sizePosCache.updateOptions(newProps.options);
        }
    };
    DropdownBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        if (prevState.isOpen === true && this.state.isOpen === false) {
            this._gotMouseMove = false;
            if (this._dropDown.current) {
                this._dropDown.current.focus();
            }
            if (this.props.onDismiss) {
                this.props.onDismiss();
            }
        }
    };
    DropdownBase.prototype.render = function () {
        var _this = this;
        var id = this._id;
        var props = this.props;
        var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, keytipProps = props.keytipProps, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, multiSelect = props.multiSelect, _a = props.onRenderTitle, onRenderTitle = _a === void 0 ? this._onRenderTitle : _a, _b = props.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = props.onRenderCaretDown, onRenderCaretDown = _c === void 0 ? this._onRenderCaretDown : _c, _d = props.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d;
        var _e = this.state, isOpen = _e.isOpen, selectedIndices = _e.selectedIndices, calloutRenderEdge = _e.calloutRenderEdge;
        var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._onRenderPlaceholder;
        var selectedOptions = Object(_utilities_selectableOption_index__WEBPACK_IMPORTED_MODULE_15__["getAllSelectedOptions"])(options, selectedIndices);
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var disabled = this._isDisabled();
        var errorMessageId = id + '-errorMessage';
        var ariaActiveDescendant = disabled
            ? undefined
            : isOpen && selectedIndices.length === 1 && selectedIndices[0] >= 0
                ? this._listId + selectedIndices[0]
                : undefined;
        var ariaAttrs = multiSelect || disabled
            ? {}
            : // single select
                {
                    role: 'listbox',
                    childRole: 'option',
                    ariaSetSize: this._sizePosCache.optionSetSize,
                    ariaPosInSet: this._sizePosCache.positionInSet(selectedIndices[0]),
                    ariaSelected: selectedIndices[0] === undefined ? undefined : true
                };
        this._classNames = getClassNames(propStyles, {
            theme: theme,
            className: className,
            hasError: !!(errorMessage && errorMessage.length > 0),
            hasLabel: !!label,
            isOpen: isOpen,
            required: required,
            disabled: disabled,
            isRenderingPlaceholder: !selectedOptions.length,
            panelClassName: !!panelProps ? panelProps.className : undefined,
            calloutClassName: !!calloutProps ? calloutProps.className : undefined,
            calloutRenderEdge: calloutRenderEdge
        });
        var hasErrorMessage = !!errorMessage && errorMessage.length > 0;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            onRenderLabel(this.props, this._onRenderLabel),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_12__["KeytipData"], { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipAttributes, { "data-is-focusable": !disabled, ref: _this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: ariaAttrs.role, "aria-haspopup": "listbox", "aria-expanded": isOpen ? 'true' : 'false', "aria-label": ariaLabel, "aria-labelledby": label && !ariaLabel ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(_this._labelId, _this._optionId) : undefined, "aria-describedby": Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(keytipAttributes['aria-describedby'], hasErrorMessage ? _this._id + '-errorMessage' : undefined), "aria-activedescendant": ariaActiveDescendant, "aria-required": required, "aria-disabled": disabled, "aria-owns": isOpen ? _this._listId : undefined }, divProps, { className: _this._classNames.dropdown, onBlur: _this._onDropdownBlur, onKeyDown: _this._onDropdownKeyDown, onKeyUp: _this._onDropdownKeyUp, onClick: _this._onDropdownClick, onMouseDown: _this._onDropdownMouseDown, onFocus: _this._onFocus }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: _this._optionId, className: _this._classNames.title, "aria-live": "polite", "aria-atomic": true, "aria-invalid": hasErrorMessage, role: ariaAttrs.childRole, "aria-setsize": ariaAttrs.ariaSetSize, "aria-posinset": ariaAttrs.ariaPosInSet, "aria-selected": ariaAttrs.ariaSelected }, // If option is selected render title, otherwise render the placeholder text
                selectedOptions.length
                    ? onRenderTitle(selectedOptions, _this._onRenderTitle)
                    : onRenderPlaceholder(props, _this._onRenderPlaceholder)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.caretDownWrapper }, onRenderCaretDown(props, _this._onRenderCaretDown)))); }),
            isOpen && onRenderContainer(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { onDismiss: this._onDismiss }), this._onRenderContainer),
            hasErrorMessage && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "alert", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));
    };
    DropdownBase.prototype.focus = function (shouldOpenOnFocus) {
        if (this._dropDown.current) {
            this._dropDown.current.focus();
            if (shouldOpenOnFocus) {
                this.setState({
                    isOpen: true
                });
            }
        }
    };
    DropdownBase.prototype.setSelectedIndex = function (event, index) {
        var _this = this;
        var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect;
        var _b = this.state.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;
        var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;
        var newIndexes = [];
        index = Math.max(0, Math.min(options.length - 1, index));
        // If this is a controlled component then no state change should take place.
        if (selectedKey !== undefined || selectedKeys !== undefined) {
            this._onChange(event, options, index, checked, multiSelect);
            return;
        }
        if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {
            return;
        }
        else if (multiSelect) {
            newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];
            if (checked) {
                var position = newIndexes.indexOf(index);
                if (position > -1) {
                    // unchecked the current one
                    newIndexes.splice(position, 1);
                }
            }
            else {
                // add the new selected index into the existing one
                newIndexes.push(index);
            }
        }
        else {
            // Set the selected option if this is an uncontrolled component
            newIndexes = [index];
        }
        event.persist();
        // Call onChange after state is updated
        this.setState({
            selectedIndices: newIndexes
        }, function () {
            _this._onChange(event, options, index, checked, multiSelect);
        });
    };
    Object.defineProperty(DropdownBase.prototype, "_placeholder", {
        /** Get either props.placeholder (new name) or props.placeHolder (old name) */
        get: function () {
            return this.props.placeholder || this.props.placeHolder;
        },
        enumerable: true,
        configurable: true
    });
    DropdownBase.prototype._copyArray = function (array) {
        var newArray = [];
        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
            var element = array_1[_i];
            newArray.push(element);
        }
        return newArray;
    };
    /**
     * Finds the next valid Dropdown option and sets the selected index to it.
     * @param stepValue - Value of how many items the function should traverse.  Should be -1 or 1.
     * @param index - Index of where the search should start
     * @param selectedIndex - The selectedIndex Dropdown's state
     * @returns The next valid dropdown option's index
     */
    DropdownBase.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {
        var options = this.props.options;
        // Return selectedIndex if nothing has changed or options is empty
        if (selectedIndex === index || options.length === 0) {
            return selectedIndex;
        }
        // Set starting index to 0 if index is < 0
        if (index < 0) {
            index = 0;
        }
        // Set starting index to last option index if greater than options.length
        if (index >= options.length) {
            index = options.length - 1;
        }
        var stepCounter = 0;
        // If current index is a header or divider, or disabled, increment by step
        while (options[index].itemType === _Dropdown_types__WEBPACK_IMPORTED_MODULE_7__["DropdownMenuItemType"].Header ||
            options[index].itemType === _Dropdown_types__WEBPACK_IMPORTED_MODULE_7__["DropdownMenuItemType"].Divider ||
            options[index].disabled) {
            // If stepCounter exceeds length of options, then return selectedIndex (-1)
            if (stepCounter >= options.length) {
                return selectedIndex;
            }
            // If index + stepValue is out of bounds, wrap around
            if (index + stepValue < 0) {
                index = options.length;
            }
            else if (index + stepValue >= options.length) {
                index = -1;
            }
            index = index + stepValue;
            stepCounter++;
        }
        this.setSelectedIndex(event, index);
        return index;
    };
    /** Wrap item list in a FocusZone */
    DropdownBase.prototype._renderFocusableList = function (props) {
        var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_9__["FocusZone"], { ref: this._focusZone, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_9__["FocusZoneDirection"].vertical, id: this._listId, className: this._classNames.dropdownItems, role: "listbox", "aria-label": ariaLabel, "aria-labelledby": label && !ariaLabel ? this._labelId : undefined, "aria-multiselectable": multiSelect }, onRenderList(props, this._onRenderList))));
    };
    DropdownBase.prototype._renderSeparator = function (item) {
        var index = item.index, key = item.key;
        if (index > 0) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "separator", key: key, className: this._classNames.dropdownDivider });
        }
        return null;
    };
    DropdownBase.prototype._renderHeader = function (item) {
        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;
        var key = item.key;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: key, className: this._classNames.dropdownItemHeader }, onRenderOption(item, this._onRenderOption)));
    };
    DropdownBase.prototype._onItemMouseEnter = function (item, ev) {
        if (this._shouldIgnoreMouseEvent()) {
            return;
        }
        var targetElement = ev.currentTarget;
        targetElement.focus();
    };
    DropdownBase.prototype._onItemMouseMove = function (item, ev) {
        var targetElement = ev.currentTarget;
        this._gotMouseMove = true;
        if (!this._isScrollIdle || document.activeElement === targetElement) {
            return;
        }
        targetElement.focus();
    };
    DropdownBase.prototype._shouldIgnoreMouseEvent = function () {
        return !this._isScrollIdle || !this._gotMouseMove;
    };
    /** Get all selected indexes for multi-select mode */
    DropdownBase.prototype._getSelectedIndexes = function (options, selectedKey) {
        if (selectedKey === undefined) {
            if (this.props.multiSelect) {
                return this._getAllSelectedIndices(options);
            }
            var selectedIndex = this._getSelectedIndex(options, null);
            return selectedIndex !== -1 ? [selectedIndex] : [];
        }
        else if (!Array.isArray(selectedKey)) {
            var selectedIndex = this._getSelectedIndex(options, selectedKey);
            return selectedIndex !== -1 ? [selectedIndex] : [];
        }
        var selectedIndices = [];
        for (var _i = 0, selectedKey_1 = selectedKey; _i < selectedKey_1.length; _i++) {
            var key = selectedKey_1[_i];
            var selectedIndex = this._getSelectedIndex(options, key);
            selectedIndex !== -1 && selectedIndices.push(selectedIndex);
        }
        return selectedIndices;
    };
    DropdownBase.prototype._getAllSelectedIndices = function (options) {
        return options.map(function (option, index) { return (option.selected ? index : -1); }).filter(function (index) { return index !== -1; });
    };
    DropdownBase.prototype._getSelectedIndex = function (options, selectedKey) {
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findIndex"])(options, function (option) {
            // tslint:disable-next-line:triple-equals
            if (selectedKey != null) {
                return option.key === selectedKey;
            }
            else {
                return !!option.isSelected || !!option.selected;
            }
        });
    };
    /**
     * Returns true if the key for the event is alt (Mac option) or meta (Mac command).
     */
    DropdownBase.prototype._isAltOrMeta = function (ev) {
        return ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].alt || ev.key === 'Meta';
    };
    /**
     * We close the menu on key up only if ALL of the following are true:
     * - Most recent key down was alt or meta (command)
     * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to
     *   expand/collapse the menu)
     * - We're not on a Mac (or iOS)
     *
     * This is because on Windows, pressing alt moves focus to the application menu bar or similar,
     * closing any open context menus. There is not a similar behavior on Macs.
     */
    DropdownBase.prototype._shouldHandleKeyUp = function (ev) {
        var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);
        this._lastKeyDownWasAltOrMeta = false;
        return !!keyPressIsAltOrMetaAlone && !(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isMac"])() || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isIOS"])());
    };
    /**
     * Returns true if dropdown should set to open on focus.
     * Otherwise, isOpen state should be toggled on click
     */
    DropdownBase.prototype._shouldOpenOnFocus = function () {
        var hasFocus = this.state.hasFocus;
        var openOnKeyboardFocus = this.props.openOnKeyboardFocus;
        return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;
    };
    DropdownBase.defaultProps = {
        options: []
    };
    DropdownBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_14__["withResponsiveMode"]
    ], DropdownBase);
    return DropdownBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Dropdown/Dropdown.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Dropdown_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dropdown/Dropdown.base.js");
/* harmony import */ var _Dropdown_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dropdown/Dropdown.styles.js");



var Dropdown = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Dropdown_base__WEBPACK_IMPORTED_MODULE_1__["DropdownBase"], _Dropdown_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Dropdown'
});


/***/ }),

/***/ "./lib/components/Dropdown/Dropdown.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/positioning.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Styling.js");
var _a, _b, _c;




var GlobalClassNames = {
    root: 'ms-Dropdown-container',
    label: 'ms-Dropdown-label',
    dropdown: 'ms-Dropdown',
    title: 'ms-Dropdown-title',
    caretDownWrapper: 'ms-Dropdown-caretDownWrapper',
    caretDown: 'ms-Dropdown-caretDown',
    callout: 'ms-Dropdown-callout',
    panel: 'ms-Dropdown-panel',
    dropdownItems: 'ms-Dropdown-items',
    dropdownItem: 'ms-Dropdown-item',
    dropdownDivider: 'ms-Dropdown-divider',
    dropdownOptionText: 'ms-Dropdown-optionText',
    dropdownItemHeader: 'ms-Dropdown-header',
    titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',
    titleHasError: 'ms-Dropdown-title--hasError'
};
var DROPDOWN_HEIGHT = 32;
var DROPDOWN_ITEM_HEIGHT = 36;
var highContrastAdjustMixin = (_a = {},
    _a[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"] + ", " + _Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelectorWhite"].replace('@media ', '')] = {
        MsHighContrastAdjust: 'none'
    },
    _a);
var highContrastItemAndTitleStateMixin = {
    selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_b = {}, _b[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = {
        backgroundColor: 'Highlight',
        borderColor: 'Highlight',
        color: 'HighlightText',
        selectors: {
            ':hover': {
                color: 'HighlightText' // overrides the hover styling for buttons that are also selected
            }
        }
    }, _b), highContrastAdjustMixin)
};
var highContrastBorderState = {
    selectors: (_c = {},
        _c[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = {
            borderColor: 'Highlight'
        },
        _c)
};
var MinimumScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_3__["getScreenSelector"])(0, _Styling__WEBPACK_IMPORTED_MODULE_3__["ScreenWidthMinMedium"]);
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f, _g;
    var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;
    if (!theme) {
        throw new Error('theme is undefined or null in base Dropdown getStyles function.');
    }
    var globalClassnames = Object(_Styling__WEBPACK_IMPORTED_MODULE_3__["getGlobalClassNames"])(GlobalClassNames, theme);
    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var rootHoverFocusActiveSelectorNeutralDarkMixin = {
        color: semanticColors.menuItemTextHovered
    };
    var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {
        color: palette.neutralPrimary
    };
    var borderColorError = {
        borderColor: semanticColors.errorText
    };
    var dropdownItemStyle = [
        globalClassnames.dropdownItem,
        {
            backgroundColor: 'transparent',
            boxSizing: 'border-box',
            cursor: 'pointer',
            display: 'flex',
            alignItems: 'center',
            padding: '0 8px',
            width: '100%',
            minHeight: DROPDOWN_ITEM_HEIGHT,
            lineHeight: 20,
            height: 0,
            position: 'relative',
            border: '1px solid transparent',
            borderRadius: 0,
            wordWrap: 'break-word',
            overflowWrap: 'break-word',
            textAlign: 'left'
        }
    ];
    var itemSelectors = function (isSelected) {
        var _a;
        if (isSelected === void 0) { isSelected = false; }
        return {
            selectors: (_a = {
                    '&:hover:focus': {
                        color: palette.neutralDark,
                        backgroundColor: !isSelected ? palette.neutralLighter : palette.neutralLight
                    },
                    '&:focus': {
                        backgroundColor: !isSelected ? 'transparent' : palette.neutralLight
                    },
                    '&:active': {
                        color: palette.neutralDark,
                        backgroundColor: !isSelected ? palette.neutralLighter : palette.neutralLight
                    }
                },
                _a[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = {
                    borderColor: 'Window'
                },
                _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus:after"] = {
                    left: 0,
                    top: 0,
                    bottom: 0,
                    right: 0
                },
                _a)
        };
    };
    var dropdownItemSelected = dropdownItemStyle.concat([
        {
            backgroundColor: palette.neutralLight,
            color: palette.neutralDark
        },
        itemSelectors(true),
        highContrastItemAndTitleStateMixin
    ]);
    var dropdownItemDisabled = dropdownItemStyle.concat([
        {
            color: semanticColors.disabledText,
            cursor: 'default'
        }
    ]);
    var titleOpenBorderRadius = calloutRenderEdge === _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["RectangleEdge"].bottom
        ? effects.roundedCorner2 + " " + effects.roundedCorner2 + " 0 0"
        : "0 0 " + effects.roundedCorner2 + " " + effects.roundedCorner2;
    var calloutOpenBorderRadius = calloutRenderEdge === _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["RectangleEdge"].bottom
        ? "0 0 " + effects.roundedCorner2 + " " + effects.roundedCorner2
        : effects.roundedCorner2 + " " + effects.roundedCorner2 + " 0 0";
    return {
        root: [globalClassnames.root, className],
        label: globalClassnames.label,
        dropdown: [
            globalClassnames.dropdown,
            _Styling__WEBPACK_IMPORTED_MODULE_3__["normalize"],
            fonts.medium,
            {
                color: palette.neutralPrimary,
                borderColor: palette.neutralSecondary,
                position: 'relative',
                outline: 0,
                userSelect: 'none',
                selectors: (_a = {},
                    _a['&:hover .' + globalClassnames.title] = [
                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,
                        { borderColor: !isOpen ? palette.neutralPrimary : palette.themePrimary },
                        highContrastBorderState
                    ],
                    _a['&:focus .' + globalClassnames.title] = [
                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,
                        {
                            borderColor: palette.themePrimary /* see https://github.com/OfficeDev/office-ui-fabric-react/pull/9182 for semantic color disc */
                        },
                        highContrastItemAndTitleStateMixin
                    ],
                    _a['&:active .' + globalClassnames.title] = [
                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,
                        { borderColor: palette.themePrimary },
                        highContrastBorderState
                    ],
                    _a['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                    _a['&:focus .' + globalClassnames.caretDown] = [
                        !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                        { selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_b = {}, _b[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = { color: 'HighlightText' }, _b), highContrastAdjustMixin) }
                    ],
                    _a['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                    _a['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                    _a['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                    _a['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,
                    _a['&:hover .' + globalClassnames.titleHasError] = borderColorError,
                    _a['&:active .' + globalClassnames.titleHasError] = borderColorError,
                    _a)
            },
            isOpen && 'is-open',
            disabled && 'is-disabled',
            required && 'is-required',
            required &&
                !hasLabel && {
                selectors: (_c = {
                        ':after': {
                            content: "'*'",
                            color: semanticColors.errorText,
                            position: 'absolute',
                            top: -5,
                            right: -10
                        }
                    },
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = {
                        selectors: {
                            ':after': {
                                right: -14 // moving the * 4 pixel to right to alleviate border clipping in HC mode.
                            }
                        }
                    },
                    _c)
            }
        ],
        title: [
            globalClassnames.title,
            _Styling__WEBPACK_IMPORTED_MODULE_3__["normalize"],
            {
                backgroundColor: semanticColors.inputBackground,
                borderWidth: 1,
                borderStyle: 'solid',
                borderColor: semanticColors.inputBorder,
                borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,
                cursor: 'pointer',
                display: 'block',
                height: DROPDOWN_HEIGHT,
                lineHeight: DROPDOWN_HEIGHT - 2,
                padding: "0 28px 0 8px",
                position: 'relative',
                overflow: 'hidden',
                whiteSpace: 'nowrap',
                textOverflow: 'ellipsis'
            },
            isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],
            hasError && [globalClassnames.titleHasError, borderColorError],
            disabled && {
                backgroundColor: semanticColors.disabledBackground,
                border: 'none',
                color: semanticColors.disabledText,
                cursor: 'default',
                selectors: (_d = {}, _d[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = { border: '1px solid GrayText', color: 'GrayText' }, _d)
            }
        ],
        caretDownWrapper: [
            globalClassnames.caretDownWrapper,
            {
                position: 'absolute',
                top: 1,
                right: 8,
                height: DROPDOWN_HEIGHT,
                lineHeight: DROPDOWN_HEIGHT - 2 // height minus the border
            },
            !disabled && {
                cursor: 'pointer'
            }
        ],
        caretDown: [
            globalClassnames.caretDown,
            { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },
            disabled && { color: semanticColors.disabledText, selectors: (_e = {}, _e[_Styling__WEBPACK_IMPORTED_MODULE_3__["HighContrastSelector"]] = { color: 'GrayText' }, _e) }
        ],
        errorMessage: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ color: semanticColors.errorText }, theme.fonts.small, { paddingTop: 5 }),
        callout: [
            globalClassnames.callout,
            {
                boxShadow: effects.elevation8,
                borderRadius: calloutOpenBorderRadius,
                selectors: (_f = {},
                    _f['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },
                    _f)
            },
            calloutClassName
        ],
        dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },
        dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],
        dropdownItem: dropdownItemStyle.concat([itemSelectors()]),
        dropdownItemSelected: dropdownItemSelected,
        dropdownItemDisabled: dropdownItemDisabled,
        dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],
        dropdownItemHidden: dropdownItemStyle.concat([{ display: 'none' }]),
        dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],
        dropdownOptionText: [
            globalClassnames.dropdownOptionText,
            {
                overflow: 'hidden',
                whiteSpace: 'nowrap',
                textOverflow: 'ellipsis',
                minWidth: 0,
                maxWidth: '100%',
                wordWrap: 'break-word',
                overflowWrap: 'break-word',
                margin: '1px'
            }
        ],
        dropdownItemHeader: [
            globalClassnames.dropdownItemHeader,
            tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, fonts.medium, { fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_3__["FontWeights"].semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left' })
        ],
        subComponentStyles: {
            label: { root: { display: 'inline-block' } },
            multiSelectItem: {
                root: {
                    padding: 0
                },
                label: {
                    alignSelf: 'stretch',
                    padding: '0 8px',
                    width: '100%'
                }
            },
            panel: {
                root: [panelClassName],
                main: {
                    selectors: (_g = {},
                        // In case of extra small screen sizes
                        _g[MinimumScreenSelector] = {
                            // panelWidth xs
                            width: 272
                        },
                        _g)
                },
                contentInner: { padding: '0 0 20px' }
            }
        }
    };
};


/***/ }),

/***/ "./lib/components/Dropdown/Dropdown.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_0__["ResponsiveMode"]; });

/* harmony import */ var _utilities_selectableOption_SelectableOption_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/selectableOption/SelectableOption.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMenuItemType", function() { return _utilities_selectableOption_SelectableOption_types__WEBPACK_IMPORTED_MODULE_1__["SelectableOptionMenuItemType"]; });



 // Exported because the type is an optional prop and not exported otherwise.


/***/ }),

/***/ "./lib/components/Dropdown/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Dropdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Dropdown/Dropdown.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return _Dropdown__WEBPACK_IMPORTED_MODULE_0__["Dropdown"]; });

/* harmony import */ var _Dropdown_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Dropdown/Dropdown.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownBase", function() { return _Dropdown_base__WEBPACK_IMPORTED_MODULE_1__["DropdownBase"]; });

/* harmony import */ var _Dropdown_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Dropdown/Dropdown.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMenuItemType", function() { return _Dropdown_types__WEBPACK_IMPORTED_MODULE_2__["DropdownMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _Dropdown_types__WEBPACK_IMPORTED_MODULE_2__["ResponsiveMode"]; });






/***/ }),

/***/ "./lib/components/Dropdown/utilities/DropdownSizePosCache.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownSizePosCache", function() { return DropdownSizePosCache; });
/* harmony import */ var _Dropdown_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Dropdown/Dropdown.types.js");

/**
 * A utility class to cache size and position in cache.
 *
 * Dropdown options has non-selectable display types. It is therefore not cheap to determine
 * the total number of actual selectable options as well as the position an option is in the
 * list of options - O(n) cost for each lookup.
 *
 * Given that we potentially have to make this determination on every single render pass, this
 * cache should provide a little bit of relief.
 */
var DropdownSizePosCache = /** @class */ (function () {
    function DropdownSizePosCache() {
        this._size = 0;
    }
    /**
     * Invalidates the cache and recalculate the size of selectable options.
     */
    DropdownSizePosCache.prototype.updateOptions = function (options) {
        var displayOnlyOptionsCache = [];
        var size = 0;
        for (var i = 0; i < options.length; i++) {
            if (options[i].itemType === _Dropdown_types__WEBPACK_IMPORTED_MODULE_0__["DropdownMenuItemType"].Divider || options[i].itemType === _Dropdown_types__WEBPACK_IMPORTED_MODULE_0__["DropdownMenuItemType"].Header) {
                displayOnlyOptionsCache.push(i);
            }
            else {
                size++;
            }
        }
        this._size = size;
        this._displayOnlyOptionsCache = displayOnlyOptionsCache;
    };
    Object.defineProperty(DropdownSizePosCache.prototype, "optionSetSize", {
        /**
         * The size of all the selectable options.
         */
        get: function () {
            return this._size;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns the position of this option element relative to the full set of selectable option elements.
     * Note: the first selectable element is position 1 in the set.
     * @param index The raw index of the option element.
     */
    DropdownSizePosCache.prototype.positionInSet = function (index) {
        if (index === undefined) {
            return undefined;
        }
        // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that
        // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.
        var offset = 0;
        while (index > this._displayOnlyOptionsCache[offset]) {
            offset++;
        }
        if (this._displayOnlyOptionsCache[offset] === index) {
            throw new Error("Unexpected: Option at index " + index + " is not a selectable element.");
        }
        return index - offset + 1;
    };
    return DropdownSizePosCache;
}());



/***/ }),

/***/ "./lib/components/ExtendedPicker/BaseExtendedPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPicker", function() { return BaseExtendedPicker; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Autofill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Autofill.js");
/* harmony import */ var _BaseExtendedPicker_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/ExtendedPicker/BaseExtendedPicker.scss.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Selection.js");







// tslint:disable-next-line:no-any
var styles = _BaseExtendedPicker_scss__WEBPACK_IMPORTED_MODULE_4__;
var BaseExtendedPicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseExtendedPicker, _super);
    function BaseExtendedPicker(basePickerProps) {
        var _this = _super.call(this, basePickerProps) || this;
        _this.floatingPicker = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.selectedItemsList = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.input = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.onSelectionChange = function () {
            _this.forceUpdate();
        };
        _this.onInputChange = function (value) {
            _this.setState({ queryString: value });
            if (_this.floatingPicker.current) {
                _this.floatingPicker.current.onQueryStringChanged(value);
            }
        };
        _this.onInputFocus = function (ev) {
            if (_this.selectedItemsList.current) {
                _this.selectedItemsList.current.unselectAll();
            }
            if (_this.props.inputProps && _this.props.inputProps.onFocus) {
                _this.props.inputProps.onFocus(ev);
            }
        };
        _this.onInputClick = function (ev) {
            if (_this.selectedItemsList.current) {
                _this.selectedItemsList.current.unselectAll();
            }
            if (_this.floatingPicker.current && _this.inputElement) {
                // Update the value if the input value is empty or it is different than the current inputText from the floatingPicker
                var shoudUpdateValue = _this.inputElement.value === '' || _this.inputElement.value !== _this.floatingPicker.current.inputText;
                _this.floatingPicker.current.showPicker(shoudUpdateValue);
            }
        };
        // This is protected because we may expect the backspace key to work differently in a different kind of picker.
        // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow
        _this.onBackspace = function (ev) {
            if (ev.which !== _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].backspace) {
                return;
            }
            if (_this.selectedItemsList.current && _this.items.length) {
                if (_this.input.current &&
                    !_this.input.current.isValueSelected &&
                    _this.input.current.inputElement === document.activeElement &&
                    _this.input.current.cursorLocation === 0) {
                    if (_this.floatingPicker.current) {
                        _this.floatingPicker.current.hidePicker();
                    }
                    ev.preventDefault();
                    _this.selectedItemsList.current.removeItemAt(_this.items.length - 1);
                    _this._onSelectedItemsChanged();
                }
                else if (_this.selectedItemsList.current.hasSelectedItems()) {
                    if (_this.floatingPicker.current) {
                        _this.floatingPicker.current.hidePicker();
                    }
                    ev.preventDefault();
                    _this.selectedItemsList.current.removeSelectedItems();
                    _this._onSelectedItemsChanged();
                }
            }
        };
        _this.onCopy = function (ev) {
            if (_this.selectedItemsList.current) {
                // Pass it down into the selected items list
                _this.selectedItemsList.current.onCopy(ev);
            }
        };
        _this.onPaste = function (ev) {
            if (_this.props.onPaste) {
                var inputText = ev.clipboardData.getData('Text');
                ev.preventDefault();
                _this.props.onPaste(inputText);
            }
        };
        _this._onSuggestionSelected = function (item) {
            var currentRenderedQueryString = _this.props.currentRenderedQueryString;
            var queryString = _this.state.queryString;
            if (currentRenderedQueryString === undefined || currentRenderedQueryString === queryString) {
                var processedItem = _this.props.onItemSelected ? _this.props.onItemSelected(item) : item;
                if (processedItem === null) {
                    return;
                }
                var processedItemObject = processedItem;
                var processedItemPromiseLike = processedItem;
                var newItem_1;
                if (processedItemPromiseLike && processedItemPromiseLike.then) {
                    processedItemPromiseLike.then(function (resolvedProcessedItem) {
                        newItem_1 = resolvedProcessedItem;
                        _this._addProcessedItem(newItem_1);
                    });
                }
                else {
                    newItem_1 = processedItemObject;
                    _this._addProcessedItem(newItem_1);
                }
            }
        };
        _this._onSelectedItemsChanged = function () {
            _this.focus();
        };
        /**
         * The floating picker is the source of truth for if the menu has been opened or not.
         *
         * Because this isn't tracked inside the state of this component, we need to
         * force an update here to keep the rendered output that depends on the picker being open
         * in sync with the state
         *
         * Called when the suggestions is shown or closed
         */
        _this._onSuggestionsShownOrHidden = function () {
            _this.forceUpdate();
        };
        _this.selection = new _Selection__WEBPACK_IMPORTED_MODULE_6__["Selection"]({ onSelectionChanged: function () { return _this.onSelectionChange(); } });
        _this.state = {
            queryString: '',
            suggestionItems: _this.props.suggestionItems ? _this.props.suggestionItems : null,
            selectedItems: _this.props.defaultSelectedItems
                ? _this.props.defaultSelectedItems
                : _this.props.selectedItems
                    ? _this.props.selectedItems
                    : null
        };
        _this.floatingPickerProps = _this.props.floatingPickerProps;
        _this.selectedItemsListProps = _this.props.selectedItemsListProps;
        return _this;
    }
    Object.defineProperty(BaseExtendedPicker.prototype, "items", {
        // tslint:disable-next-line:no-any
        get: function () {
            return this.state.selectedItems
                ? this.state.selectedItems
                : this.selectedItemsList.current
                    ? this.selectedItemsList.current.items
                    : null;
        },
        enumerable: true,
        configurable: true
    });
    BaseExtendedPicker.prototype.componentDidMount = function () {
        this.forceUpdate();
    };
    // tslint:disable-next-line function-name
    BaseExtendedPicker.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.floatingPickerProps) {
            this.floatingPickerProps = newProps.floatingPickerProps;
        }
        if (newProps.selectedItemsListProps) {
            this.selectedItemsListProps = newProps.selectedItemsListProps;
        }
        if (newProps.selectedItems) {
            this.setState({ selectedItems: newProps.selectedItems });
        }
    };
    BaseExtendedPicker.prototype.focus = function () {
        if (this.input.current) {
            this.input.current.focus();
        }
    };
    BaseExtendedPicker.prototype.clearInput = function () {
        if (this.input.current) {
            this.input.current.clear();
        }
    };
    Object.defineProperty(BaseExtendedPicker.prototype, "inputElement", {
        get: function () {
            return this.input.current && this.input.current.inputElement;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseExtendedPicker.prototype, "highlightedItems", {
        get: function () {
            return this.selectedItemsList.current ? this.selectedItemsList.current.highlightedItems() : [];
        },
        enumerable: true,
        configurable: true
    });
    BaseExtendedPicker.prototype.render = function () {
        var _a = this.props, className = _a.className, inputProps = _a.inputProps, disabled = _a.disabled, focusZoneProps = _a.focusZoneProps;
        var activeDescendant = this.floatingPicker.current && this.floatingPicker.current.currentSelectedSuggestionIndex !== -1
            ? 'sug-' + this.floatingPicker.current.currentSelectedSuggestionIndex
            : undefined;
        var isExpanded = this.floatingPicker.current ? this.floatingPicker.current.isSuggestionsShown : false;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.root, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker ms-BaseExtendedPicker', className ? className : ''), onKeyDown: this.onBackspace, onCopy: this.onCopy },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ direction: _FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZoneDirection"].bidirectional }, focusZoneProps),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Selection__WEBPACK_IMPORTED_MODULE_6__["SelectionZone"], { selection: this.selection, selectionMode: _Selection__WEBPACK_IMPORTED_MODULE_6__["SelectionMode"].multiple },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-text', styles.pickerText), role: 'list' },
                        this.props.headerComponent,
                        this.renderSelectedItemsList(),
                        this.canAddItems() && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Autofill__WEBPACK_IMPORTED_MODULE_3__["Autofill"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, inputProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-input', styles.pickerInput), ref: this.input, onFocus: this.onInputFocus, onClick: this.onInputClick, onInputValueChange: this.onInputChange, "aria-activedescendant": activeDescendant, "aria-owns": isExpanded ? 'suggestion-list' : undefined, "aria-expanded": isExpanded, "aria-haspopup": "true", autoCapitalize: "off", autoComplete: "off", role: "combobox", disabled: disabled, onPaste: this.onPaste })))))),
            this.renderFloatingPicker()));
    };
    BaseExtendedPicker.prototype.canAddItems = function () {
        var itemLimit = this.props.itemLimit;
        return itemLimit === undefined || this.items.length < itemLimit;
    };
    BaseExtendedPicker.prototype.renderFloatingPicker = function () {
        var FloatingPicker = this.props.onRenderFloatingPicker;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](FloatingPicker, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: this.floatingPicker, onChange: this._onSuggestionSelected, onSuggestionsHidden: this._onSuggestionsShownOrHidden, onSuggestionsShown: this._onSuggestionsShownOrHidden, inputElement: this.input.current ? this.input.current.inputElement : undefined, selectedItems: this.items, suggestionItems: this.props.suggestionItems ? this.props.suggestionItems : undefined }, this.floatingPickerProps)));
    };
    BaseExtendedPicker.prototype.renderSelectedItemsList = function () {
        var SelectedItems = this.props.onRenderSelectedItems;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](SelectedItems, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: this.selectedItemsList, selection: this.selection, selectedItems: this.props.selectedItems ? this.props.selectedItems : undefined, onItemsDeleted: this.props.selectedItems ? this.props.onItemsRemoved : undefined }, this.selectedItemsListProps)));
    };
    BaseExtendedPicker.prototype._addProcessedItem = function (newItem) {
        // If this is a controlled component, call the on item selected callback
        // Otherwise add it to the selectedItemsList
        if (this.props.onItemAdded) {
            this.props.onItemAdded(newItem);
        }
        if (this.selectedItemsList.current) {
            this.selectedItemsList.current.addItems([newItem]);
        }
        if (this.input.current) {
            this.input.current.clear();
        }
        if (this.floatingPicker.current) {
            this.floatingPicker.current.hidePicker();
        }
        this.focus();
    };
    return BaseExtendedPicker;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ExtendedPicker/BaseExtendedPicker.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerText", function() { return pickerText; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerInput", function() { return pickerInput; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".pickerText_ecad0f63{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid " }, { "theme": "neutralTertiary", "defaultValue": "#a19f9d" }, { "rawString": ";min-width:180px;padding:1px;min-height:32px}.pickerText_ecad0f63:hover{border-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.pickerInput_ecad0f63{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:none;padding:0 6px 0px;margin:1px}.pickerInput_ecad0f63::-ms-clear{display:none}\n" }]);
var pickerText = "pickerText_ecad0f63";
var pickerInput = "pickerInput_ecad0f63";


/***/ }),

/***/ "./lib/components/ExtendedPicker/PeoplePicker/ExtendedPeoplePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPeoplePicker", function() { return BaseExtendedPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExtendedPeoplePicker", function() { return ExtendedPeoplePicker; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _ExtendedPeoplePicker_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ExtendedPicker/PeoplePicker/ExtendedPeoplePicker.scss.js");
/* harmony import */ var _BaseExtendedPicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ExtendedPicker/BaseExtendedPicker.js");



/**
 * {@docCategory ExtendedPeoplePicker}
 */
var BaseExtendedPeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseExtendedPeoplePicker, _super);
    function BaseExtendedPeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return BaseExtendedPeoplePicker;
}(_BaseExtendedPicker__WEBPACK_IMPORTED_MODULE_2__["BaseExtendedPicker"]));

/**
 * {@docCategory ExtendedPeoplePicker}
 */
var ExtendedPeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExtendedPeoplePicker, _super);
    function ExtendedPeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ExtendedPeoplePicker;
}(BaseExtendedPeoplePicker));



/***/ }),

/***/ "./lib/components/ExtendedPicker/PeoplePicker/ExtendedPeoplePicker.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultContent", function() { return resultContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultItem", function() { return resultItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePickerPersona", function() { return peoplePickerPersona; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePicker", function() { return peoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePickerPersonaContent", function() { return peoplePickerPersonaContent; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".resultContent_8d238594{display:table-row}.resultContent_8d238594 .resultItem_8d238594{display:table-cell;vertical-align:bottom}.peoplePickerPersona_8d238594{width:180px}.peoplePickerPersona_8d238594 .ms-Persona-details{width:100%}.peoplePicker_8d238594 .ms-BasePicker-text{min-height:40px}.peoplePickerPersonaContent_8d238594{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}\n" }]);
var resultContent = "resultContent_8d238594";
var resultItem = "resultItem_8d238594";
var peoplePickerPersona = "peoplePickerPersona_8d238594";
var peoplePicker = "peoplePicker_8d238594";
var peoplePickerPersonaContent = "peoplePickerPersonaContent_8d238594";


/***/ }),

/***/ "./lib/components/ExtendedPicker/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseExtendedPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ExtendedPicker/BaseExtendedPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPicker", function() { return _BaseExtendedPicker__WEBPACK_IMPORTED_MODULE_0__["BaseExtendedPicker"]; });

/* harmony import */ var _PeoplePicker_ExtendedPeoplePicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ExtendedPicker/PeoplePicker/ExtendedPeoplePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPeoplePicker", function() { return _PeoplePicker_ExtendedPeoplePicker__WEBPACK_IMPORTED_MODULE_1__["BaseExtendedPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedPeoplePicker", function() { return _PeoplePicker_ExtendedPeoplePicker__WEBPACK_IMPORTED_MODULE_1__["ExtendedPeoplePicker"]; });





/***/ }),

/***/ "./lib/components/Fabric/Fabric.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FabricBase", function() { return FabricBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Fabric_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Fabric/Fabric.styles.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var FabricBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FabricBase, _super);
    function FabricBase(props) {
        var _this = _super.call(this, props) || this;
        _this._rootElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._disposables = [];
        _this._onMouseDown = function (ev) {
            _this.setState({ isFocusVisible: false });
        };
        _this._onKeyDown = function (ev) {
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isDirectionalKeyCode"])(ev.which)) {
                _this.setState({ isFocusVisible: true });
            }
        };
        _this.state = { isFocusVisible: false };
        return _this;
    }
    FabricBase.prototype.render = function () {
        var className = this.props.className;
        var classNames = getClassNames(_Fabric_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"], {
            theme: this.props.theme,
            className: className,
            isFocusVisible: this.state.isFocusVisible
        });
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: classNames.root, ref: this._rootElement }));
    };
    FabricBase.prototype.componentDidMount = function () {
        var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(this._rootElement.current);
        if (win) {
            this._disposables.push(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(win, 'mousedown', this._onMouseDown, true), Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(win, 'keydown', this._onKeyDown, true));
        }
    };
    FabricBase.prototype.componentWillUnmount = function () {
        this._disposables.forEach(function (dispose) { return dispose(); });
    };
    return FabricBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Fabric/Fabric.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fabric", function() { return Fabric; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Fabric_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Fabric/Fabric.base.js");
/* harmony import */ var _Fabric_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Fabric/Fabric.styles.js");



var Fabric = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Fabric_base__WEBPACK_IMPORTED_MODULE_1__["FabricBase"], _Fabric_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Fabric'
});


/***/ }),

/***/ "./lib/components/Fabric/Fabric.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var inheritFont = { fontFamily: 'inherit' };
var GlobalClassNames = {
    root: 'ms-Fabric'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className, isFocusVisible = props.isFocusVisible;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            isFocusVisible && 'is-focusVisible ms-Fabric--isFocusVisible',
            theme.fonts.medium,
            {
                color: theme.palette.neutralPrimary,
                selectors: {
                    '& button': inheritFont,
                    '& input': inheritFont,
                    '& textarea': inheritFont
                }
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Fabric/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Fabric__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Fabric/Fabric.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fabric", function() { return _Fabric__WEBPACK_IMPORTED_MODULE_0__["Fabric"]; });

/* harmony import */ var _Fabric_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Fabric/Fabric.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricBase", function() { return _Fabric_base__WEBPACK_IMPORTED_MODULE_1__["FabricBase"]; });





/***/ }),

/***/ "./lib/components/Facepile/Facepile.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FacepileBase", function() { return FacepileBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Facepile_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Facepile/Facepile.types.js");
/* harmony import */ var _FacepileButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Facepile/FacepileButton.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _PersonaCoin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/PersonaCoin.js");








var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * FacePile with no default styles.
 * [Use the `styles` API to add your own styles.](https://github.com/OfficeDev/office-ui-fabric-react/wiki/Component-Styling)
 */
var FacepileBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FacepileBase, _super);
    function FacepileBase(props) {
        var _this = _super.call(this, props) || this;
        _this._classNames = getClassNames(_this.props.styles, {
            theme: _this.props.theme,
            className: _this.props.className
        });
        _this._getPersonaControl = function (persona) {
            var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;
            var personaStyles = {
                details: {
                    flex: '1 0 auto'
                }
            };
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_6__["Persona"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null), { styles: personaStyles })));
        };
        _this._getPersonaCoinControl = function (persona) {
            var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaCoin"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null))));
        };
        _this._ariaDescriptionId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        return _this;
    }
    FacepileBase.prototype.render = function () {
        var overflowButtonProps = this.props.overflowButtonProps;
        var _a = this.props, chevronButtonProps = _a.chevronButtonProps, maxDisplayablePersonas = _a.maxDisplayablePersonas, personas = _a.personas, overflowPersonas = _a.overflowPersonas, showAddButton = _a.showAddButton, ariaLabel = _a.ariaLabel;
        var _classNames = this._classNames;
        // Add a check to make sure maxDisplayalePersonas is defined to cover the edge case of it being 0.
        var numPersonasToShow = typeof maxDisplayablePersonas === 'number' ? Math.min(personas.length, maxDisplayablePersonas) : personas.length;
        // Added for deprecating chevronButtonProps.  Can remove after v1.0
        if (chevronButtonProps && !overflowButtonProps) {
            overflowButtonProps = chevronButtonProps;
        }
        var hasOverflowPersonas = overflowPersonas && overflowPersonas.length > 0;
        var personasPrimary = hasOverflowPersonas ? personas : personas.slice(0, numPersonasToShow);
        var personasOverflow = (hasOverflowPersonas ? overflowPersonas : personas.slice(numPersonasToShow)) || [];
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _classNames.root },
            this.onRenderAriaDescription(),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _classNames.itemContainer },
                showAddButton ? this._getAddNewElement() : null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ul", { className: _classNames.members, role: "listbox", "aria-label": ariaLabel }, this._onRenderVisiblePersonas(personasPrimary, personasOverflow.length === 0 && personas.length === 1)),
                overflowButtonProps ? this._getOverflowElement(personasOverflow) : null)));
    };
    FacepileBase.prototype.onRenderAriaDescription = function () {
        var ariaDescription = this.props.ariaDescription;
        var _classNames = this._classNames;
        // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,
        // otherwise it will be assigned to descriptionSpan.
        return (ariaDescription && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _classNames.screenReaderOnly, id: this._ariaDescriptionId }, ariaDescription)));
    };
    FacepileBase.prototype._onRenderVisiblePersonas = function (personas, singlePersona) {
        var _this = this;
        var _a = this.props, _b = _a.onRenderPersona, onRenderPersona = _b === void 0 ? this._getPersonaControl : _b, _c = _a.onRenderPersonaCoin, onRenderPersonaCoin = _c === void 0 ? this._getPersonaCoinControl : _c;
        return personas.map(function (persona, index) {
            var personaControl = singlePersona
                ? onRenderPersona(persona, _this._getPersonaControl)
                : onRenderPersonaCoin(persona, _this._getPersonaCoinControl);
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { role: "option", key: (singlePersona ? 'persona' : 'personaCoin') + "-" + index, className: _this._classNames.member, "aria-label": persona['aria-label'] || persona.personaName }, persona.onClick
                ? _this._getElementWithOnClickEvent(personaControl, persona, index)
                : _this._getElementWithoutOnClickEvent(personaControl, persona, index)));
        });
    };
    FacepileBase.prototype._getElementWithOnClickEvent = function (personaControl, persona, index) {
        var keytipProps = persona.keytipProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FacepileButton__WEBPACK_IMPORTED_MODULE_4__["FacepileButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(persona, _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"]), this._getElementProps(persona, index), { keytipProps: keytipProps, onClick: this._onPersonaClick.bind(this, persona) }), personaControl));
    };
    FacepileBase.prototype._getElementWithoutOnClickEvent = function (personaControl, persona, index) {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(persona, _Utilities__WEBPACK_IMPORTED_MODULE_2__["buttonProperties"]), this._getElementProps(persona, index)), personaControl));
    };
    FacepileBase.prototype._getElementProps = function (persona, index) {
        var _classNames = this._classNames;
        return {
            key: (!!persona.imageUrl ? 'i' : '') + index,
            'data-is-focusable': true,
            'aria-hidden': true,
            className: _classNames.itemButton,
            title: persona.personaName,
            onMouseMove: this._onPersonaMouseMove.bind(this, persona),
            onMouseOut: this._onPersonaMouseOut.bind(this, persona)
        };
    };
    FacepileBase.prototype._getOverflowElement = function (personasOverflow) {
        switch (this.props.overflowButtonType) {
            case _Facepile_types__WEBPACK_IMPORTED_MODULE_3__["OverflowButtonType"].descriptive:
                return this._getDescriptiveOverflowElement(personasOverflow);
            case _Facepile_types__WEBPACK_IMPORTED_MODULE_3__["OverflowButtonType"].downArrow:
                return this._getIconElement('ChevronDown');
            case _Facepile_types__WEBPACK_IMPORTED_MODULE_3__["OverflowButtonType"].more:
                return this._getIconElement('More');
            default:
                return null;
        }
    };
    FacepileBase.prototype._getDescriptiveOverflowElement = function (personasOverflow) {
        var personaSize = this.props.personaSize;
        if (!personasOverflow || personasOverflow.length < 1) {
            return null;
        }
        var personaNames = personasOverflow.map(function (p) { return p.personaName; }).join(', ');
        var overflowButtonProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ title: personaNames }, this.props.overflowButtonProps);
        var numPersonasNotPictured = Math.max(personasOverflow.length, 0);
        var _classNames = this._classNames;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FacepileButton__WEBPACK_IMPORTED_MODULE_4__["FacepileButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowButtonProps, { ariaDescription: overflowButtonProps.title, className: _classNames.descriptiveOverflowButton }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaCoin"], { size: personaSize, onRenderInitials: this._renderInitialsNotPictured(numPersonasNotPictured), initialsColor: _PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaInitialsColor"].transparent })));
    };
    FacepileBase.prototype._getIconElement = function (icon) {
        var _a = this.props, overflowButtonProps = _a.overflowButtonProps, personaSize = _a.personaSize;
        var overflowInitialsIcon = true;
        var _classNames = this._classNames;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FacepileButton__WEBPACK_IMPORTED_MODULE_4__["FacepileButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowButtonProps, { className: _classNames.overflowButton }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaCoin"], { size: personaSize, onRenderInitials: this._renderInitials(icon, overflowInitialsIcon), initialsColor: _PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaInitialsColor"].transparent })));
    };
    FacepileBase.prototype._getAddNewElement = function () {
        var _a = this.props, addButtonProps = _a.addButtonProps, personaSize = _a.personaSize;
        var _classNames = this._classNames;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FacepileButton__WEBPACK_IMPORTED_MODULE_4__["FacepileButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, addButtonProps, { className: _classNames.addButton }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaCoin"], { size: personaSize, onRenderInitials: this._renderInitials('AddFriend') })));
    };
    FacepileBase.prototype._onPersonaClick = function (persona, ev) {
        persona.onClick(ev, persona);
        ev.preventDefault();
        ev.stopPropagation();
    };
    FacepileBase.prototype._onPersonaMouseMove = function (persona, ev) {
        if (!!persona.onMouseMove) {
            persona.onMouseMove(ev, persona);
        }
    };
    FacepileBase.prototype._onPersonaMouseOut = function (persona, ev) {
        if (!!persona.onMouseOut) {
            persona.onMouseOut(ev, persona);
        }
    };
    FacepileBase.prototype._renderInitials = function (iconName, overflowButton) {
        var _classNames = this._classNames;
        return function () {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: iconName, className: overflowButton ? _classNames.overflowInitialsIcon : '' });
        };
    };
    FacepileBase.prototype._renderInitialsNotPictured = function (numPersonasNotPictured) {
        var _classNames = this._classNames;
        return function () {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _classNames.overflowInitialsIcon }, '+' + numPersonasNotPictured);
        };
    };
    FacepileBase.defaultProps = {
        maxDisplayablePersonas: 5,
        personas: [],
        overflowPersonas: [],
        personaSize: _PersonaCoin__WEBPACK_IMPORTED_MODULE_7__["PersonaSize"].size32
    };
    return FacepileBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Facepile/Facepile.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Facepile", function() { return Facepile; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Facepile_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Facepile/Facepile.base.js");
/* harmony import */ var _Facepile_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Facepile/Facepile.styles.js");



/**
 * The Facepile shows a list of faces or initials in a horizontal lockup. Each circle represents a person.
 */
var Facepile = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Facepile_base__WEBPACK_IMPORTED_MODULE_1__["FacepileBase"], _Facepile_styles__WEBPACK_IMPORTED_MODULE_2__["styles"], undefined, {
    scope: 'Facepile'
});


/***/ }),

/***/ "./lib/components/Facepile/Facepile.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Facepile',
    addButton: 'ms-Facepile-addButton ms-Facepile-itemButton',
    descriptiveOverflowButton: 'ms-Facepile-descriptiveOverflowButton ms-Facepile-itemButton',
    itemButton: 'ms-Facepile-itemButton ms-Facepile-person',
    itemContainer: 'ms-Facepile-itemContainer',
    members: 'ms-Facepile-members',
    member: 'ms-Facepile-member',
    overflowButton: 'ms-Facepile-overflowButton ms-Facepile-itemButton'
};
var styles = function (props) {
    var className = props.className, theme = props.theme, _a = props.spacingAroundItemButton, spacingAroundItemButton = _a === void 0 ? 2 : _a;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var ItemButtonStyles = {
        textAlign: 'center',
        padding: 0,
        borderRadius: '50%',
        verticalAlign: 'top',
        display: 'inline',
        backgroundColor: 'transparent',
        cursor: 'pointer',
        border: 'none',
        selectors: {
            '&::-moz-focus-inner': {
                padding: 0,
                border: 0
            }
        }
    };
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                width: 'auto'
            },
            className
        ],
        addButton: [
            classNames.addButton,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -1 }),
            ItemButtonStyles,
            {
                fontSize: fonts.medium.fontSize,
                color: palette.white,
                backgroundColor: palette.themePrimary,
                marginRight: spacingAroundItemButton * 2 + 'px',
                selectors: {
                    '&:hover': {
                        backgroundColor: palette.themeDark
                    },
                    '&:focus': {
                        backgroundColor: palette.themeDark
                    },
                    '&:active': {
                        backgroundColor: palette.themeDarker
                    },
                    '&:disabled': {
                        backgroundColor: palette.neutralTertiaryAlt
                    }
                }
            }
        ],
        descriptiveOverflowButton: [
            classNames.descriptiveOverflowButton,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -1 }),
            ItemButtonStyles,
            {
                fontSize: fonts.small.fontSize,
                color: palette.neutralSecondary,
                backgroundColor: palette.neutralLighter,
                marginLeft: spacingAroundItemButton * 2 + "px"
            }
        ],
        itemButton: [classNames.itemButton, ItemButtonStyles],
        itemContainer: [
            classNames.itemContainer,
            {
                display: 'flex'
            }
        ],
        members: [
            classNames.members,
            {
                display: 'flex',
                overflow: 'hidden',
                listStyleType: 'none',
                padding: 0,
                margin: "-" + spacingAroundItemButton + "px"
            }
        ],
        member: [
            classNames.member,
            {
                display: 'inline-flex',
                flex: '0 0 auto',
                margin: spacingAroundItemButton + "px"
            }
        ],
        overflowButton: [
            classNames.overflowButton,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -1 }),
            ItemButtonStyles,
            {
                fontSize: fonts.medium.fontSize,
                color: palette.neutralSecondary,
                backgroundColor: palette.neutralLighter,
                marginLeft: spacingAroundItemButton * 2 + "px"
            }
        ],
        overflowInitialsIcon: [
            {
                color: palette.neutralPrimary
            }
        ],
        screenReaderOnly: _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]
    };
};


/***/ }),

/***/ "./lib/components/Facepile/Facepile.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverflowButtonType", function() { return OverflowButtonType; });
/**
 * {@docCategory Facepile}
 */
var OverflowButtonType;
(function (OverflowButtonType) {
    /** No overflow */
    OverflowButtonType[OverflowButtonType["none"] = 0] = "none";
    /** +1 overflow icon */
    OverflowButtonType[OverflowButtonType["descriptive"] = 1] = "descriptive";
    /** More overflow icon */
    OverflowButtonType[OverflowButtonType["more"] = 2] = "more";
    /** Chevron overflow icon */
    OverflowButtonType[OverflowButtonType["downArrow"] = 3] = "downArrow";
})(OverflowButtonType || (OverflowButtonType = {}));


/***/ }),

/***/ "./lib/components/Facepile/FacepileButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FacepileButton", function() { return FacepileButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FacepileButton_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Facepile/FacepileButton.styles.js");





var FacepileButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FacepileButton, _super);
    function FacepileButton() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        return _this;
    }
    FacepileButton.prototype.render = function () {
        var _a = this.props, className = _a.className, styles = _a.styles, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["className", "styles"]);
        var customStyles = Object(_FacepileButton_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"])(this.props.theme, className, styles);
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_2__["BaseButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rest, { variantClassName: "ms-Button--facepile", styles: customStyles, onRenderDescription: _Utilities__WEBPACK_IMPORTED_MODULE_3__["nullRender"] }));
    };
    FacepileButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["customizable"])('FacepileButton', ['theme', 'styles'], true)
    ], FacepileButton);
    return FacepileButton;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Facepile/FacepileButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button_BaseButton_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Button/BaseButton.styles.js");




var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["memoizeFunction"])(function (theme, className, customStyles) {
    var baseButtonStyles = Object(_Button_BaseButton_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"])(theme);
    var customButtonStyles = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["concatStyleSets"])(baseButtonStyles, customStyles);
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, customButtonStyles, { root: [baseButtonStyles.root, className, theme.fonts.medium, customStyles && customStyles.root] });
});


/***/ }),

/***/ "./lib/components/Facepile/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Facepile_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Facepile/Facepile.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowButtonType", function() { return _Facepile_types__WEBPACK_IMPORTED_MODULE_0__["OverflowButtonType"]; });

/* harmony import */ var _Facepile_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Facepile/Facepile.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FacepileBase", function() { return _Facepile_base__WEBPACK_IMPORTED_MODULE_1__["FacepileBase"]; });

/* harmony import */ var _Facepile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Facepile/Facepile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Facepile", function() { return _Facepile__WEBPACK_IMPORTED_MODULE_2__["Facepile"]; });






/***/ }),

/***/ "./lib/components/FloatingPicker/BaseFloatingPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPicker", function() { return BaseFloatingPicker; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseFloatingPicker_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/FloatingPicker/BaseFloatingPicker.scss.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsControl.js");






// tslint:disable-next-line:no-any
var styles = _BaseFloatingPicker_scss__WEBPACK_IMPORTED_MODULE_2__;
var BaseFloatingPicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseFloatingPicker, _super);
    function BaseFloatingPicker(basePickerProps) {
        var _this = _super.call(this, basePickerProps) || this;
        _this.root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.suggestionsControl = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.SuggestionsControlOfProperType = _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_5__["SuggestionsControl"];
        _this.isComponentMounted = false;
        _this.onQueryStringChanged = function (queryString) {
            if (queryString !== _this.state.queryString) {
                _this.setState({
                    queryString: queryString
                });
                if (_this.props.onInputChanged) {
                    _this.props.onInputChanged(queryString);
                }
                _this.updateValue(queryString);
            }
        };
        _this.hidePicker = function () {
            var wasShownBeforeUpdate = _this.isSuggestionsShown;
            _this.setState({
                suggestionsVisible: false
            });
            if (_this.props.onSuggestionsHidden && wasShownBeforeUpdate) {
                _this.props.onSuggestionsHidden();
            }
        };
        _this.showPicker = function (updateValue) {
            if (updateValue === void 0) { updateValue = false; }
            var wasShownBeforeUpdate = _this.isSuggestionsShown;
            _this.setState({
                suggestionsVisible: true
            });
            // Update the suggestions if updateValue == true
            var value = _this.props.inputElement ? _this.props.inputElement.value : '';
            if (updateValue) {
                _this.updateValue(value);
            }
            if (_this.props.onSuggestionsShown && !wasShownBeforeUpdate) {
                _this.props.onSuggestionsShown();
            }
        };
        _this.completeSuggestion = function () {
            if (_this.suggestionsControl.current && _this.suggestionsControl.current.hasSuggestionSelected()) {
                _this.onChange(_this.suggestionsControl.current.currentSuggestion.item);
            }
        };
        _this.onSuggestionClick = function (ev, item, index) {
            _this.onChange(item);
            _this._updateSuggestionsVisible(false /*shouldShow*/);
        };
        _this.onSuggestionRemove = function (ev, item, index) {
            if (_this.props.onRemoveSuggestion) {
                _this.props.onRemoveSuggestion(item);
            }
            if (_this.suggestionsControl.current) {
                _this.suggestionsControl.current.removeSuggestion(index);
            }
        };
        _this.onKeyDown = function (ev) {
            if (!_this.state.suggestionsVisible ||
                (_this.props.inputElement && !_this.props.inputElement.contains(ev.target))) {
                return;
            }
            var keyCode = ev.which;
            switch (keyCode) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].escape:
                    _this.hidePicker();
                    ev.preventDefault();
                    ev.stopPropagation();
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].tab:
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].enter:
                    if (!ev.shiftKey && !ev.ctrlKey && _this.suggestionsControl.current && _this.suggestionsControl.current.handleKeyDown(keyCode)) {
                        ev.preventDefault();
                        ev.stopPropagation();
                    }
                    else {
                        _this._onValidateInput();
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].del:
                    if (_this.props.onRemoveSuggestion &&
                        _this.suggestionsControl.current &&
                        _this.suggestionsControl.current.hasSuggestionSelected &&
                        _this.suggestionsControl.current.currentSuggestion &&
                        ev.shiftKey) {
                        _this.props.onRemoveSuggestion(_this.suggestionsControl.current.currentSuggestion.item);
                        _this.suggestionsControl.current.removeSuggestion();
                        _this.forceUpdate();
                        ev.stopPropagation();
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].up:
                    if (_this.suggestionsControl.current && _this.suggestionsControl.current.handleKeyDown(keyCode)) {
                        ev.preventDefault();
                        ev.stopPropagation();
                        _this._updateActiveDescendant();
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].down:
                    if (_this.suggestionsControl.current && _this.suggestionsControl.current.handleKeyDown(keyCode)) {
                        ev.preventDefault();
                        ev.stopPropagation();
                        _this._updateActiveDescendant();
                    }
                    break;
            }
        };
        _this._onValidateInput = function () {
            if (_this.state.queryString && _this.props.onValidateInput && _this.props.createGenericItem) {
                var itemToConvert = _this.props.createGenericItem(_this.state.queryString, _this.props.onValidateInput(_this.state.queryString));
                var convertedItems = _this.suggestionStore.convertSuggestionsToSuggestionItems([itemToConvert]);
                _this.onChange(convertedItems[0].item);
            }
        };
        _this.suggestionStore = basePickerProps.suggestionsStore;
        _this.state = {
            queryString: '',
            didBind: false
        };
        return _this;
    }
    Object.defineProperty(BaseFloatingPicker.prototype, "inputText", {
        get: function () {
            return this.state.queryString;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseFloatingPicker.prototype, "suggestions", {
        // tslint:disable-next-line:no-any
        get: function () {
            return this.suggestionStore.suggestions;
        },
        enumerable: true,
        configurable: true
    });
    BaseFloatingPicker.prototype.forceResolveSuggestion = function () {
        if (this.suggestionsControl.current && this.suggestionsControl.current.hasSuggestionSelected()) {
            this.completeSuggestion();
        }
        else {
            this._onValidateInput();
        }
    };
    Object.defineProperty(BaseFloatingPicker.prototype, "currentSelectedSuggestionIndex", {
        get: function () {
            return this.suggestionsControl.current ? this.suggestionsControl.current.currentSuggestionIndex : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(BaseFloatingPicker.prototype, "isSuggestionsShown", {
        get: function () {
            return this.state.suggestionsVisible === undefined ? false : this.state.suggestionsVisible;
        },
        enumerable: true,
        configurable: true
    });
    BaseFloatingPicker.prototype.componentDidMount = function () {
        this._bindToInputElement();
        this.isComponentMounted = true;
        this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);
    };
    BaseFloatingPicker.prototype.componentDidUpdate = function () {
        this._bindToInputElement();
    };
    BaseFloatingPicker.prototype.componentWillUnmount = function () {
        this._unbindFromInputElement();
        this.isComponentMounted = false;
    };
    // tslint:disable-next-line function-name
    BaseFloatingPicker.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.suggestionItems) {
            this.updateSuggestions(newProps.suggestionItems);
        }
    };
    BaseFloatingPicker.prototype.updateSuggestions = function (suggestions, forceUpdate) {
        if (forceUpdate === void 0) { forceUpdate = false; }
        this.suggestionStore.updateSuggestions(suggestions);
        if (forceUpdate) {
            this.forceUpdate();
        }
    };
    BaseFloatingPicker.prototype.render = function () {
        var className = this.props.className;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.root, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])('ms-BasePicker ms-BaseFloatingPicker', className ? className : '') }, this.renderSuggestions()));
    };
    BaseFloatingPicker.prototype.renderSuggestions = function () {
        var TypedSuggestionsControl = this.SuggestionsControlOfProperType;
        return this.state.suggestionsVisible ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_4__["Callout"], { className: styles.callout, isBeakVisible: false, gapSpace: 5, target: this.props.inputElement, onDismiss: this.hidePicker, directionalHint: _Callout__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomLeftEdge, directionalHintForRTL: _Callout__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomRightEdge, calloutWidth: this.props.calloutWidth ? this.props.calloutWidth : 0 },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](TypedSuggestionsControl, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionsControl, completeSuggestion: this.completeSuggestion, shouldLoopSelection: false }, this.props.pickerSuggestionsProps)))) : null;
    };
    BaseFloatingPicker.prototype.onSelectionChange = function () {
        this.forceUpdate();
    };
    BaseFloatingPicker.prototype.updateValue = function (updatedValue) {
        if (updatedValue === '') {
            this.updateSuggestionWithZeroState();
        }
        else {
            this._onResolveSuggestions(updatedValue);
        }
    };
    BaseFloatingPicker.prototype.updateSuggestionWithZeroState = function () {
        if (this.props.onZeroQuerySuggestion) {
            var onEmptyInputFocus = this.props.onZeroQuerySuggestion;
            var suggestions = onEmptyInputFocus(this.props.selectedItems);
            this.updateSuggestionsList(suggestions);
        }
        else {
            this.hidePicker();
        }
    };
    BaseFloatingPicker.prototype.updateSuggestionsList = function (suggestions) {
        var _this = this;
        var suggestionsArray = suggestions;
        var suggestionsPromiseLike = suggestions;
        // Check to see if the returned value is an array, if it is then just pass it into the next function.
        // If the returned value is not an array then check to see if it's a promise or PromiseLike. If it is then resolve it asynchronously.
        if (Array.isArray(suggestionsArray)) {
            this.updateSuggestions(suggestionsArray, true /*forceUpdate*/);
        }
        else if (suggestionsPromiseLike && suggestionsPromiseLike.then) {
            // Ensure that the promise will only use the callback if it was the most recent one.
            var promise_1 = (this.currentPromise = suggestionsPromiseLike);
            promise_1.then(function (newSuggestions) {
                // Only update if the next promise has not yet resolved and
                // the floating picker is still mounted.
                if (promise_1 === _this.currentPromise && _this.isComponentMounted) {
                    _this.updateSuggestions(newSuggestions, true /*forceUpdate*/);
                }
            });
        }
    };
    BaseFloatingPicker.prototype.onChange = function (item) {
        if (this.props.onChange) {
            this.props.onChange(item);
        }
    };
    BaseFloatingPicker.prototype._updateActiveDescendant = function () {
        if (this.props.inputElement && this.suggestionsControl.current && this.suggestionsControl.current.selectedElement) {
            var selectedElId = this.suggestionsControl.current.selectedElement.getAttribute('id');
            if (selectedElId) {
                this.props.inputElement.setAttribute('aria-activedescendant', selectedElId);
            }
        }
    };
    BaseFloatingPicker.prototype._onResolveSuggestions = function (updatedValue) {
        var suggestions = this.props.onResolveSuggestions(updatedValue, this.props.selectedItems);
        this._updateSuggestionsVisible(true /*shouldShow*/);
        if (suggestions !== null) {
            this.updateSuggestionsList(suggestions);
        }
    };
    BaseFloatingPicker.prototype._updateSuggestionsVisible = function (shouldShow) {
        if (shouldShow) {
            this.showPicker();
        }
        else {
            this.hidePicker();
        }
    };
    BaseFloatingPicker.prototype._bindToInputElement = function () {
        if (this.props.inputElement && !this.state.didBind) {
            this.props.inputElement.addEventListener('keydown', this.onKeyDown);
            this.setState({ didBind: true });
        }
    };
    BaseFloatingPicker.prototype._unbindFromInputElement = function () {
        if (this.props.inputElement && this.state.didBind) {
            this.props.inputElement.removeEventListener('keydown', this.onKeyDown);
            this.setState({ didBind: false });
        }
    };
    return BaseFloatingPicker;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/FloatingPicker/BaseFloatingPicker.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callout", function() { return callout; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".callout_e8e64567 .ms-Suggestions-itemButton{padding:0px;border:none}.callout_e8e64567 .ms-Suggestions{min-width:300px}\n" }]);
var callout = "callout_e8e64567";


/***/ }),

/***/ "./lib/components/FloatingPicker/PeoplePicker/FloatingPeoplePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPeoplePicker", function() { return BaseFloatingPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingPeoplePicker", function() { return FloatingPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createItem", function() { return createItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BaseFloatingPicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/FloatingPicker/BaseFloatingPicker.js");
/* harmony import */ var _PeoplePickerItems_SuggestionItemDefault__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/FloatingPicker/PeoplePicker/PeoplePickerItems/SuggestionItemDefault.js");
/* harmony import */ var _PeoplePicker_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/FloatingPicker/PeoplePicker/PeoplePicker.scss.js");





/**
 * {@docCategory FloatingPeoplePicker}
 */
var BaseFloatingPeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseFloatingPeoplePicker, _super);
    function BaseFloatingPeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return BaseFloatingPeoplePicker;
}(_BaseFloatingPicker__WEBPACK_IMPORTED_MODULE_2__["BaseFloatingPicker"]));

var FloatingPeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FloatingPeoplePicker, _super);
    function FloatingPeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    // tslint:disable-next-line:no-any
    FloatingPeoplePicker.defaultProps = {
        onRenderSuggestionsItem: function (props, itemProps) {
            return Object(_PeoplePickerItems_SuggestionItemDefault__WEBPACK_IMPORTED_MODULE_3__["SuggestionItemNormal"])(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props), tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, itemProps));
        },
        createGenericItem: createItem
    };
    return FloatingPeoplePicker;
}(BaseFloatingPeoplePicker));

function createItem(name, isValid) {
    // tslint:disable-next-line:no-any
    var personaToConvert = {
        key: name,
        primaryText: name,
        imageInitials: '!',
        isValid: isValid
    };
    if (!isValid) {
        personaToConvert.imageInitials = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getInitials"])(name, Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])());
    }
    return personaToConvert;
}


/***/ }),

/***/ "./lib/components/FloatingPicker/PeoplePicker/PeoplePicker.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultContent", function() { return resultContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultItem", function() { return resultItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePickerPersona", function() { return peoplePickerPersona; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePicker", function() { return peoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "peoplePickerPersonaContent", function() { return peoplePickerPersonaContent; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".resultContent_77ff388a{display:table-row}.resultContent_77ff388a .resultItem_77ff388a{display:table-cell;vertical-align:bottom}.peoplePickerPersona_77ff388a{width:180px}.peoplePickerPersona_77ff388a .ms-Persona-details{width:100%}.peoplePicker_77ff388a .ms-BasePicker-text{min-height:40px}.peoplePickerPersonaContent_77ff388a{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:7px 12px}\n" }]);
var resultContent = "resultContent_77ff388a";
var resultItem = "resultItem_77ff388a";
var peoplePickerPersona = "peoplePickerPersona_77ff388a";
var peoplePicker = "peoplePicker_77ff388a";
var peoplePickerPersonaContent = "peoplePickerPersonaContent_77ff388a";


/***/ }),

/***/ "./lib/components/FloatingPicker/PeoplePicker/PeoplePickerItems/SuggestionItemDefault.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemNormal", function() { return SuggestionItemNormal; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _PeoplePicker_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/FloatingPicker/PeoplePicker/PeoplePicker.scss.js");

/* tslint:disable */

/* tslint:enable */



var SuggestionItemNormal = function (personaProps, suggestionItemProps) {
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PeoplePicker-personaContent', _PeoplePicker_scss__WEBPACK_IMPORTED_MODULE_4__["peoplePickerPersonaContent"]) },
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_3__["Persona"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ presence: personaProps.presence !== undefined ? personaProps.presence : _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaPresence"].none, size: _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaSize"].size40, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PeoplePicker-Persona', _PeoplePicker_scss__WEBPACK_IMPORTED_MODULE_4__["peoplePickerPersona"]), showSecondaryText: true }, personaProps))));
};


/***/ }),

/***/ "./lib/components/FloatingPicker/Suggestions/SuggestionsControl.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemType", function() { return SuggestionItemType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsHeaderFooterItem", function() { return SuggestionsHeaderFooterItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsControl", function() { return SuggestionsControl; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _SuggestionsCore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsCore.js");
/* harmony import */ var _SuggestionsControl_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsControl.scss.js");
/* harmony import */ var office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Styling.js");






// tslint:disable-next-line:no-any
var styles = _SuggestionsControl_scss__WEBPACK_IMPORTED_MODULE_4__;
var SuggestionItemType;
(function (SuggestionItemType) {
    SuggestionItemType[SuggestionItemType["header"] = 0] = "header";
    SuggestionItemType[SuggestionItemType["suggestion"] = 1] = "suggestion";
    SuggestionItemType[SuggestionItemType["footer"] = 2] = "footer";
})(SuggestionItemType || (SuggestionItemType = {}));
var SuggestionsHeaderFooterItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SuggestionsHeaderFooterItem, _super);
    function SuggestionsHeaderFooterItem() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    SuggestionsHeaderFooterItem.prototype.render = function () {
        var _a;
        var _b = this.props, renderItem = _b.renderItem, onExecute = _b.onExecute, isSelected = _b.isSelected, id = _b.id, className = _b.className;
        return onExecute ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: id, onClick: onExecute, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-sectionButton', className, styles.actionButton, (_a = {},
                _a['is-selected ' + styles.buttonSelected] = isSelected,
                _a)) }, renderItem())) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: id, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-section', className, styles.suggestionsTitle) }, renderItem()));
    };
    return SuggestionsHeaderFooterItem;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

/**
 * Class when used with SuggestionsStore, renders a suggestions control with customizable headers and footers
 */
var SuggestionsControl = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SuggestionsControl, _super);
    function SuggestionsControl(suggestionsProps) {
        var _this = _super.call(this, suggestionsProps) || this;
        _this.SuggestionsOfProperType = _SuggestionsCore__WEBPACK_IMPORTED_MODULE_3__["SuggestionsCore"];
        _this.state = {
            selectedHeaderIndex: -1,
            selectedFooterIndex: -1,
            suggestions: suggestionsProps.suggestions
        };
        return _this;
    }
    SuggestionsControl.prototype.componentDidMount = function () {
        this.resetSelectedItem();
    };
    SuggestionsControl.prototype.componentDidUpdate = function () {
        this.scrollSelected();
    };
    // tslint:disable-next-line function-name
    SuggestionsControl.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        var _this = this;
        if (newProps.suggestions) {
            this.setState({ suggestions: newProps.suggestions }, function () {
                _this.resetSelectedItem();
            });
        }
    };
    SuggestionsControl.prototype.componentWillUnmount = function () {
        this._suggestions.deselectAllSuggestions();
    };
    SuggestionsControl.prototype.render = function () {
        var _a = this.props, className = _a.className, headerItemsProps = _a.headerItemsProps, footerItemsProps = _a.footerItemsProps, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText;
        var screenReaderTextStyles = Object(office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_5__["mergeStyles"])(office_ui_fabric_react_lib_Styling__WEBPACK_IMPORTED_MODULE_5__["hiddenContentStyle"]);
        var shouldAlertSuggestionsAvailableText = this.state.suggestions && this.state.suggestions.length > 0 && suggestionsAvailableAlertText;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions', className ? className : '', styles.root) },
            headerItemsProps && this.renderHeaderItems(),
            this._renderSuggestions(),
            footerItemsProps && this.renderFooterItems(),
            shouldAlertSuggestionsAvailableText ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { role: "alert", "aria-live": "polite", className: screenReaderTextStyles }, suggestionsAvailableAlertText)) : null));
    };
    Object.defineProperty(SuggestionsControl.prototype, "currentSuggestion", {
        get: function () {
            return this._suggestions && this._suggestions.getCurrentItem();
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuggestionsControl.prototype, "currentSuggestionIndex", {
        get: function () {
            return this._suggestions ? this._suggestions.currentIndex : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SuggestionsControl.prototype, "selectedElement", {
        get: function () {
            return this._selectedElement ? this._selectedElement : this._suggestions.selectedElement;
        },
        enumerable: true,
        configurable: true
    });
    SuggestionsControl.prototype.hasSuggestionSelected = function () {
        return this._suggestions && this._suggestions.hasSuggestionSelected();
    };
    SuggestionsControl.prototype.hasSelection = function () {
        var _a = this.state, selectedHeaderIndex = _a.selectedHeaderIndex, selectedFooterIndex = _a.selectedFooterIndex;
        return selectedHeaderIndex !== -1 || this.hasSuggestionSelected() || selectedFooterIndex !== -1;
    };
    SuggestionsControl.prototype.executeSelectedAction = function () {
        var _a = this.props, headerItemsProps = _a.headerItemsProps, footerItemsProps = _a.footerItemsProps;
        var _b = this.state, selectedHeaderIndex = _b.selectedHeaderIndex, selectedFooterIndex = _b.selectedFooterIndex;
        if (headerItemsProps && selectedHeaderIndex !== -1 && selectedHeaderIndex < headerItemsProps.length) {
            var selectedHeaderItem = headerItemsProps[selectedHeaderIndex];
            if (selectedHeaderItem.onExecute) {
                selectedHeaderItem.onExecute();
            }
        }
        else if (this._suggestions.hasSuggestionSelected()) {
            this.props.completeSuggestion();
        }
        else if (footerItemsProps && selectedFooterIndex !== -1 && selectedFooterIndex < footerItemsProps.length) {
            var selectedFooterItem = footerItemsProps[selectedFooterIndex];
            if (selectedFooterItem.onExecute) {
                selectedFooterItem.onExecute();
            }
        }
    };
    SuggestionsControl.prototype.removeSuggestion = function (index) {
        this._suggestions.removeSuggestion(index ? index : this._suggestions.currentIndex);
    };
    /**
     * Handles the key down, returns true, if the event was handled, false otherwise
     * @param keyCode - The keyCode to handle
     */
    SuggestionsControl.prototype.handleKeyDown = function (keyCode) {
        var _a = this.state, selectedHeaderIndex = _a.selectedHeaderIndex, selectedFooterIndex = _a.selectedFooterIndex;
        var isKeyDownHandled = false;
        if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down) {
            if (selectedHeaderIndex === -1 && !this._suggestions.hasSuggestionSelected() && selectedFooterIndex === -1) {
                this.selectFirstItem();
            }
            else if (selectedHeaderIndex !== -1) {
                this.selectNextItem(SuggestionItemType.header);
                isKeyDownHandled = true;
            }
            else if (this._suggestions.hasSuggestionSelected()) {
                this.selectNextItem(SuggestionItemType.suggestion);
                isKeyDownHandled = true;
            }
            else if (selectedFooterIndex !== -1) {
                this.selectNextItem(SuggestionItemType.footer);
                isKeyDownHandled = true;
            }
        }
        else if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up) {
            if (selectedHeaderIndex === -1 && !this._suggestions.hasSuggestionSelected() && selectedFooterIndex === -1) {
                this.selectLastItem();
            }
            else if (selectedHeaderIndex !== -1) {
                this.selectPreviousItem(SuggestionItemType.header);
                isKeyDownHandled = true;
            }
            else if (this._suggestions.hasSuggestionSelected()) {
                this.selectPreviousItem(SuggestionItemType.suggestion);
                isKeyDownHandled = true;
            }
            else if (selectedFooterIndex !== -1) {
                this.selectPreviousItem(SuggestionItemType.footer);
                isKeyDownHandled = true;
            }
        }
        else if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].tab) {
            if (this.hasSelection()) {
                this.executeSelectedAction();
                isKeyDownHandled = true;
            }
        }
        return isKeyDownHandled;
    };
    // TODO get the element to scroll into view properly regardless of direction.
    SuggestionsControl.prototype.scrollSelected = function () {
        if (this._selectedElement) {
            this._selectedElement.scrollIntoView(false);
        }
    };
    SuggestionsControl.prototype.renderHeaderItems = function () {
        var _this = this;
        var _a = this.props, headerItemsProps = _a.headerItemsProps, suggestionsHeaderContainerAriaLabel = _a.suggestionsHeaderContainerAriaLabel;
        var selectedHeaderIndex = this.state.selectedHeaderIndex;
        return headerItemsProps ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-headerContainer', styles.suggestionsContainer), id: "suggestionHeader-list", role: "list", "aria-label": suggestionsHeaderContainerAriaLabel }, headerItemsProps.map(function (headerItemProps, index) {
            var isSelected = selectedHeaderIndex !== -1 && selectedHeaderIndex === index;
            return headerItemProps.shouldShow() ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: _this._resolveRef(isSelected ? '_selectedElement' : ''), id: 'sug-header' + index, key: 'sug-header' + index, role: "listitem", "aria-label": headerItemProps.ariaLabel },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](SuggestionsHeaderFooterItem, { id: 'sug-header-item' + index, isSelected: isSelected, renderItem: headerItemProps.renderItem, onExecute: headerItemProps.onExecute, className: headerItemProps.className }))) : null;
        }))) : null;
    };
    SuggestionsControl.prototype.renderFooterItems = function () {
        var _this = this;
        var _a = this.props, footerItemsProps = _a.footerItemsProps, suggestionsFooterContainerAriaLabel = _a.suggestionsFooterContainerAriaLabel;
        var selectedFooterIndex = this.state.selectedFooterIndex;
        return footerItemsProps ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-footerContainer', styles.suggestionsContainer), id: "suggestionFooter-list", role: "list", "aria-label": suggestionsFooterContainerAriaLabel }, footerItemsProps.map(function (footerItemProps, index) {
            var isSelected = selectedFooterIndex !== -1 && selectedFooterIndex === index;
            return footerItemProps.shouldShow() ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: _this._resolveRef(isSelected ? '_selectedElement' : ''), id: 'sug-footer' + index, key: 'sug-footer' + index, role: "listitem", "aria-label": footerItemProps.ariaLabel },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](SuggestionsHeaderFooterItem, { id: 'sug-footer-item' + index, isSelected: isSelected, renderItem: footerItemProps.renderItem, onExecute: footerItemProps.onExecute, className: footerItemProps.className }))) : null;
        }))) : null;
    };
    SuggestionsControl.prototype._renderSuggestions = function () {
        var TypedSuggestions = this.SuggestionsOfProperType;
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](TypedSuggestions, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._resolveRef('_suggestions') }, this.props, { suggestions: this.state.suggestions }));
    };
    /**
     * Selects the next selectable item
     */
    SuggestionsControl.prototype.selectNextItem = function (itemType, originalItemType) {
        // If the recursive calling has not found a selectable item in the other suggestion item type groups
        // And the method is being called again with the original item type,
        // Select the first selectable item of this suggestion item type group (could be the currently selected item)
        if (itemType === originalItemType) {
            this._selectNextItemOfItemType(itemType);
            return;
        }
        var startedItemType = originalItemType !== undefined ? originalItemType : itemType;
        // Try to set the selection to the next selectable item, of the same suggestion item type group
        // If this is the original item type, use the current index
        var selectionChanged = this._selectNextItemOfItemType(itemType, startedItemType === itemType ? this._getCurrentIndexForType(itemType) : undefined);
        // If the selection did not change, try to select from the next suggestion type group
        if (!selectionChanged) {
            this.selectNextItem(this._getNextItemSectionType(itemType), startedItemType);
        }
    };
    /**
     * Selects the previous selectable item
     */
    SuggestionsControl.prototype.selectPreviousItem = function (itemType, originalItemType) {
        // If the recursive calling has not found a selectable item in the other suggestion item type groups
        // And the method is being called again with the original item type,
        // Select the last selectable item of this suggestion item type group (could be the currently selected item)
        if (itemType === originalItemType) {
            this._selectPreviousItemOfItemType(itemType);
            return;
        }
        var startedItemType = originalItemType !== undefined ? originalItemType : itemType;
        // Try to set the selection to the previous selectable item, of the same suggestion item type group
        var selectionChanged = this._selectPreviousItemOfItemType(itemType, startedItemType === itemType ? this._getCurrentIndexForType(itemType) : undefined);
        // If the selection did not change, try to select from the previous suggestion type group
        if (!selectionChanged) {
            this.selectPreviousItem(this._getPreviousItemSectionType(itemType), startedItemType);
        }
    };
    /**
     * Resets the selected state and selects the first selectable item
     */
    SuggestionsControl.prototype.resetSelectedItem = function () {
        this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });
        this._suggestions.deselectAllSuggestions();
        // Select the first item if the shouldSelectFirstItem prop is not set or it is set and it returns true
        if (this.props.shouldSelectFirstItem === undefined || this.props.shouldSelectFirstItem()) {
            this.selectFirstItem();
        }
    };
    /**
     * Selects the first item
     */
    SuggestionsControl.prototype.selectFirstItem = function () {
        if (this._selectNextItemOfItemType(SuggestionItemType.header)) {
            return;
        }
        if (this._selectNextItemOfItemType(SuggestionItemType.suggestion)) {
            return;
        }
        this._selectNextItemOfItemType(SuggestionItemType.footer);
    };
    /**
     * Selects the last item
     */
    SuggestionsControl.prototype.selectLastItem = function () {
        if (this._selectPreviousItemOfItemType(SuggestionItemType.footer)) {
            return;
        }
        if (this._selectPreviousItemOfItemType(SuggestionItemType.suggestion)) {
            return;
        }
        this._selectPreviousItemOfItemType(SuggestionItemType.header);
    };
    /**
     * Selects the next item in the suggestion item type group, given the current index
     * If none is able to be selected, returns false, otherwise returns true
     * @param itemType - The suggestion item type
     * @param currentIndex - The current index, default is -1
     */
    SuggestionsControl.prototype._selectNextItemOfItemType = function (itemType, currentIndex) {
        if (currentIndex === void 0) { currentIndex = -1; }
        if (itemType === SuggestionItemType.suggestion) {
            if (this.state.suggestions.length > currentIndex + 1) {
                this._suggestions.setSelectedSuggestion(currentIndex + 1);
                this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });
                return true;
            }
        }
        else {
            var isHeader = itemType === SuggestionItemType.header;
            var itemProps = isHeader ? this.props.headerItemsProps : this.props.footerItemsProps;
            if (itemProps && itemProps.length > currentIndex + 1) {
                for (var i = currentIndex + 1; i < itemProps.length; i++) {
                    var item = itemProps[i];
                    if (item.onExecute && item.shouldShow()) {
                        this.setState({ selectedHeaderIndex: isHeader ? i : -1 });
                        this.setState({ selectedFooterIndex: isHeader ? -1 : i });
                        this._suggestions.deselectAllSuggestions();
                        return true;
                    }
                }
            }
        }
        return false;
    };
    /**
     * Selects the previous item in the suggestion item type group, given the current index
     * If none is able to be selected, returns false, otherwise returns true
     * @param itemType - The suggestion item type
     * @param currentIndex - The current index. If none is provided, the default is the items length of specified type
     */
    SuggestionsControl.prototype._selectPreviousItemOfItemType = function (itemType, currentIndex) {
        if (itemType === SuggestionItemType.suggestion) {
            var index = currentIndex !== undefined ? currentIndex : this.state.suggestions.length;
            if (index > 0) {
                this._suggestions.setSelectedSuggestion(index - 1);
                this.setState({ selectedHeaderIndex: -1, selectedFooterIndex: -1 });
                return true;
            }
        }
        else {
            var isHeader = itemType === SuggestionItemType.header;
            var itemProps = isHeader ? this.props.headerItemsProps : this.props.footerItemsProps;
            if (itemProps) {
                var index = currentIndex !== undefined ? currentIndex : itemProps.length;
                if (index > 0) {
                    for (var i = index - 1; i >= 0; i--) {
                        var item = itemProps[i];
                        if (item.onExecute && item.shouldShow()) {
                            this.setState({ selectedHeaderIndex: isHeader ? i : -1 });
                            this.setState({ selectedFooterIndex: isHeader ? -1 : i });
                            this._suggestions.deselectAllSuggestions();
                            return true;
                        }
                    }
                }
            }
        }
        return false;
    };
    SuggestionsControl.prototype._getCurrentIndexForType = function (itemType) {
        switch (itemType) {
            case SuggestionItemType.header:
                return this.state.selectedHeaderIndex;
            case SuggestionItemType.suggestion:
                return this._suggestions.currentIndex;
            case SuggestionItemType.footer:
                return this.state.selectedFooterIndex;
        }
    };
    SuggestionsControl.prototype._getNextItemSectionType = function (itemType) {
        switch (itemType) {
            case SuggestionItemType.header:
                return SuggestionItemType.suggestion;
            case SuggestionItemType.suggestion:
                return SuggestionItemType.footer;
            case SuggestionItemType.footer:
                return SuggestionItemType.header;
        }
    };
    SuggestionsControl.prototype._getPreviousItemSectionType = function (itemType) {
        switch (itemType) {
            case SuggestionItemType.header:
                return SuggestionItemType.footer;
            case SuggestionItemType.suggestion:
                return SuggestionItemType.header;
            case SuggestionItemType.footer:
                return SuggestionItemType.suggestion;
        }
    };
    return SuggestionsControl;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/FloatingPicker/Suggestions/SuggestionsControl.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "actionButton", function() { return actionButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttonSelected", function() { return buttonSelected; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsTitle", function() { return suggestionsTitle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsSpinner", function() { return suggestionsSpinner; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "itemButton", function() { return itemButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "screenReaderOnly", function() { return screenReaderOnly; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".root_76303b11{min-width:260px}.actionButton_76303b11{background:none;background-color:transparent;border:0;cursor:pointer;margin:0;padding:0px;position:relative;width:100%;font-size:12px}html[dir='ltr'] .actionButton_76303b11{text-align:left}html[dir='rtl'] .actionButton_76303b11{text-align:right}.actionButton_76303b11:hover{background-color:" }, { "theme": "neutralLighter", "defaultValue": "#f3f2f1" }, { "rawString": ";cursor:pointer}.actionButton_76303b11:focus,.actionButton_76303b11:active{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.actionButton_76303b11 .ms-Button-icon{font-size:16px;width:25px}.actionButton_76303b11 .ms-Button-label{margin:0 4px 0 9px}html[dir='rtl'] .actionButton_76303b11 .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_76303b11{background-color:" }, { "theme": "themeLighter", "defaultValue": "#deecf9" }, { "rawString": "}.buttonSelected_76303b11:hover{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";cursor:pointer}.suggestionsTitle_76303b11{font-size:12px}.suggestionsSpinner_76303b11{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir='ltr'] .suggestionsSpinner_76303b11{padding-left:14px}html[dir='rtl'] .suggestionsSpinner_76303b11{padding-right:14px}html[dir='ltr'] .suggestionsSpinner_76303b11{text-align:left}html[dir='rtl'] .suggestionsSpinner_76303b11{text-align:right}.suggestionsSpinner_76303b11 .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_76303b11 .ms-Spinner-label{display:inline-block;margin:0px 10px 0 16px;vertical-align:middle}html[dir='rtl'] .suggestionsSpinner_76303b11 .ms-Spinner-label{margin:0px 16px 0 10px}.itemButton_76303b11{height:100%;width:100%;padding:7px 12px}@media screen and (-ms-high-contrast: active){.itemButton_76303b11{color:WindowText}}.screenReaderOnly_76303b11{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}\n" }]);
var root = "root_76303b11";
var actionButton = "actionButton_76303b11";
var buttonSelected = "buttonSelected_76303b11";
var suggestionsTitle = "suggestionsTitle_76303b11";
var suggestionsSpinner = "suggestionsSpinner_76303b11";
var itemButton = "itemButton_76303b11";
var screenReaderOnly = "screenReaderOnly_76303b11";


/***/ }),

/***/ "./lib/components/FloatingPicker/Suggestions/SuggestionsCore.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsCore", function() { return SuggestionsCore; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Pickers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Pickers.js");
/* harmony import */ var _SuggestionsCore_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsCore.scss.js");





// tslint:disable-next-line:no-any
var styles = _SuggestionsCore_scss__WEBPACK_IMPORTED_MODULE_4__;
/**
 * Class when used with SuggestionsStore, renders a basic suggestions control
 */
var SuggestionsCore = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SuggestionsCore, _super);
    function SuggestionsCore(suggestionsProps) {
        var _this = _super.call(this, suggestionsProps) || this;
        _this.SuggestionsItemOfProperType = _Pickers__WEBPACK_IMPORTED_MODULE_3__["SuggestionsItem"];
        _this._onClickTypedSuggestionsItem = function (item, index) {
            return function (ev) {
                _this.props.onSuggestionClick(ev, item, index);
            };
        };
        _this._onRemoveTypedSuggestionsItem = function (item, index) {
            return function (ev) {
                var onSuggestionRemove = _this.props.onSuggestionRemove;
                onSuggestionRemove(ev, item, index);
                ev.stopPropagation();
            };
        };
        _this.currentIndex = -1;
        return _this;
    }
    /**
     * Increments the selected suggestion index
     */
    SuggestionsCore.prototype.nextSuggestion = function () {
        var suggestions = this.props.suggestions;
        if (suggestions && suggestions.length > 0) {
            if (this.currentIndex === -1) {
                this.setSelectedSuggestion(0);
                return true;
            }
            else if (this.currentIndex < suggestions.length - 1) {
                this.setSelectedSuggestion(this.currentIndex + 1);
                return true;
            }
            else if (this.props.shouldLoopSelection && this.currentIndex === suggestions.length - 1) {
                this.setSelectedSuggestion(0);
                return true;
            }
        }
        return false;
    };
    /**
     * Decrements the selected suggestion index
     */
    SuggestionsCore.prototype.previousSuggestion = function () {
        var suggestions = this.props.suggestions;
        if (suggestions && suggestions.length > 0) {
            if (this.currentIndex === -1) {
                this.setSelectedSuggestion(suggestions.length - 1);
                return true;
            }
            else if (this.currentIndex > 0) {
                this.setSelectedSuggestion(this.currentIndex - 1);
                return true;
            }
            else if (this.props.shouldLoopSelection && this.currentIndex === 0) {
                this.setSelectedSuggestion(suggestions.length - 1);
                return true;
            }
        }
        return false;
    };
    Object.defineProperty(SuggestionsCore.prototype, "selectedElement", {
        get: function () {
            return this._selectedElement;
        },
        enumerable: true,
        configurable: true
    });
    SuggestionsCore.prototype.getCurrentItem = function () {
        return this.props.suggestions[this.currentIndex];
    };
    SuggestionsCore.prototype.getSuggestionAtIndex = function (index) {
        return this.props.suggestions[index];
    };
    SuggestionsCore.prototype.hasSuggestionSelected = function () {
        return this.currentIndex !== -1 && this.currentIndex < this.props.suggestions.length;
    };
    SuggestionsCore.prototype.removeSuggestion = function (index) {
        this.props.suggestions.splice(index, 1);
    };
    SuggestionsCore.prototype.deselectAllSuggestions = function () {
        if (this.currentIndex > -1 && this.props.suggestions[this.currentIndex]) {
            this.props.suggestions[this.currentIndex].selected = false;
            this.currentIndex = -1;
            this.forceUpdate();
        }
    };
    SuggestionsCore.prototype.setSelectedSuggestion = function (index) {
        var suggestions = this.props.suggestions;
        if (index > suggestions.length - 1 || index < 0) {
            this.currentIndex = 0;
            this.currentSuggestion.selected = false;
            this.currentSuggestion = suggestions[0];
            this.currentSuggestion.selected = true;
        }
        else {
            if (this.currentIndex > -1 && suggestions[this.currentIndex]) {
                suggestions[this.currentIndex].selected = false;
            }
            suggestions[index].selected = true;
            this.currentIndex = index;
            this.currentSuggestion = suggestions[index];
        }
        this.forceUpdate();
    };
    SuggestionsCore.prototype.componentDidUpdate = function () {
        this.scrollSelected();
    };
    SuggestionsCore.prototype.render = function () {
        var _this = this;
        var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, suggestionsContainerAriaLabel = _a.suggestionsContainerAriaLabel;
        var TypedSuggestionsItem = this.SuggestionsItemOfProperType;
        var suggestions = this.props.suggestions;
        if (resultsMaximumNumber) {
            suggestions = suggestions.slice(0, resultsMaximumNumber);
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-container', styles.suggestionsContainer), id: "suggestion-list", role: "list", "aria-label": suggestionsContainerAriaLabel }, suggestions.map(function (suggestion, index) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: _this._resolveRef(suggestion.selected || index === _this.currentIndex ? '_selectedElement' : ''), 
            // tslint:disable
            key: suggestion.item['key'] ? suggestion.item['key'] : index, 
            // tslint:enable
            id: 'sug-' + index, role: "listitem", "aria-label": suggestion.ariaLabel },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](TypedSuggestionsItem, { id: 'sug-item' + index, suggestionModel: suggestion, 
                // tslint:disable-next-line:no-any
                RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), isSelectedOverride: index === _this.currentIndex }))); })));
    };
    // TODO get the element to scroll into view properly regardless of direction.
    SuggestionsCore.prototype.scrollSelected = function () {
        if (this._selectedElement && this._selectedElement.scrollIntoView !== undefined) {
            this._selectedElement.scrollIntoView(false);
        }
    };
    return SuggestionsCore;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/FloatingPicker/Suggestions/SuggestionsCore.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsContainer", function() { return suggestionsContainer; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".suggestionsContainer_d47618a5{overflow-y:auto;overflow-x:hidden;max-height:300px}.suggestionsContainer_d47618a5 .ms-Suggestion-item:hover{background-color:" }, { "theme": "neutralLighter", "defaultValue": "#f3f2f1" }, { "rawString": ";cursor:pointer}.suggestionsContainer_d47618a5 .is-suggested{background-color:" }, { "theme": "themeLighter", "defaultValue": "#deecf9" }, { "rawString": "}.suggestionsContainer_d47618a5 .is-suggested:hover{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": ";cursor:pointer}\n" }]);
var suggestionsContainer = "suggestionsContainer_d47618a5";


/***/ }),

/***/ "./lib/components/FloatingPicker/Suggestions/SuggestionsStore.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsStore", function() { return SuggestionsStore; });
var SuggestionsStore = /** @class */ (function () {
    function SuggestionsStore(options) {
        var _this = this;
        this._isSuggestionModel = function (value) {
            return value.item !== undefined;
        };
        this._ensureSuggestionModel = function (suggestion) {
            if (_this._isSuggestionModel(suggestion)) {
                return suggestion;
            }
            else {
                return {
                    item: suggestion,
                    selected: false,
                    ariaLabel: _this.getAriaLabel !== undefined
                        ? _this.getAriaLabel(suggestion)
                        : // tslint:disable-next-line:no-any
                            suggestion.name || suggestion.primaryText
                };
            }
        };
        this.suggestions = [];
        this.getAriaLabel = options && options.getAriaLabel;
    }
    SuggestionsStore.prototype.updateSuggestions = function (newSuggestions) {
        if (newSuggestions && newSuggestions.length > 0) {
            this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);
        }
        else {
            this.suggestions = [];
        }
    };
    SuggestionsStore.prototype.getSuggestions = function () {
        return this.suggestions;
    };
    SuggestionsStore.prototype.getSuggestionAtIndex = function (index) {
        return this.suggestions[index];
    };
    SuggestionsStore.prototype.removeSuggestion = function (index) {
        this.suggestions.splice(index, 1);
    };
    SuggestionsStore.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {
        return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];
    };
    return SuggestionsStore;
}());



/***/ }),

/***/ "./lib/components/FloatingPicker/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseFloatingPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FloatingPicker/BaseFloatingPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPicker", function() { return _BaseFloatingPicker__WEBPACK_IMPORTED_MODULE_0__["BaseFloatingPicker"]; });

/* harmony import */ var _PeoplePicker_FloatingPeoplePicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/FloatingPicker/PeoplePicker/FloatingPeoplePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPeoplePicker", function() { return _PeoplePicker_FloatingPeoplePicker__WEBPACK_IMPORTED_MODULE_1__["BaseFloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingPeoplePicker", function() { return _PeoplePicker_FloatingPeoplePicker__WEBPACK_IMPORTED_MODULE_1__["FloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItem", function() { return _PeoplePicker_FloatingPeoplePicker__WEBPACK_IMPORTED_MODULE_1__["createItem"]; });

/* harmony import */ var _Suggestions_SuggestionsStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsStore.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsStore", function() { return _Suggestions_SuggestionsStore__WEBPACK_IMPORTED_MODULE_2__["SuggestionsStore"]; });

/* harmony import */ var _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsControl.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemType", function() { return _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_3__["SuggestionItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsHeaderFooterItem", function() { return _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_3__["SuggestionsHeaderFooterItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsControl", function() { return _Suggestions_SuggestionsControl__WEBPACK_IMPORTED_MODULE_3__["SuggestionsControl"]; });

/* harmony import */ var _Suggestions_SuggestionsCore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/FloatingPicker/Suggestions/SuggestionsCore.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsCore", function() { return _Suggestions_SuggestionsCore__WEBPACK_IMPORTED_MODULE_4__["SuggestionsCore"]; });








/***/ }),

/***/ "./lib/components/FocusTrapZone/FocusTrapZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusTrapZone", function() { return FocusTrapZone; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var FocusTrapZone = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FocusTrapZone, _super);
    function FocusTrapZone(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._firstBumper = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._lastBumper = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._hasFocus = false;
        _this._onRootFocus = function (ev) {
            if (_this.props.onFocus) {
                _this.props.onFocus(ev);
            }
            _this._hasFocus = true;
        };
        _this._onRootBlur = function (ev) {
            if (_this.props.onBlur) {
                _this.props.onBlur(ev);
            }
            var relatedTarget = ev.relatedTarget;
            if (ev.relatedTarget === null) {
                // In IE11, due to lack of support, event.relatedTarget is always
                // null making every onBlur call to be "outside" of the ComboBox
                // even when it's not. Using document.activeElement is another way
                // for us to be able to get what the relatedTarget without relying
                // on the event
                relatedTarget = _this._getDocument().activeElement;
            }
            if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(_this._root.current, relatedTarget)) {
                _this._hasFocus = false;
            }
        };
        _this._onFirstBumperFocus = function () {
            _this._onBumperFocus(true);
        };
        _this._onLastBumperFocus = function () {
            _this._onBumperFocus(false);
        };
        _this._onBumperFocus = function (isFirstBumper) {
            if (_this.props.disabled) {
                return;
            }
            var currentBumper = (isFirstBumper === _this._hasFocus ? _this._lastBumper.current : _this._firstBumper.current);
            if (_this._root.current) {
                var nextFocusable = isFirstBumper === _this._hasFocus
                    ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getLastTabbable"])(_this._root.current, currentBumper, true, false)
                    : Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getFirstTabbable"])(_this._root.current, currentBumper, true, false);
                if (nextFocusable) {
                    if (_this._isBumper(nextFocusable)) {
                        // This can happen when FTZ contains no tabbable elements. focus will take care of finding a focusable element in FTZ.
                        _this.focus();
                    }
                    else {
                        nextFocusable.focus();
                    }
                }
            }
        };
        _this._onFocusCapture = function (ev) {
            if (_this.props.onFocusCapture) {
                _this.props.onFocusCapture(ev);
            }
            if (ev.target !== ev.currentTarget && !_this._isBumper(ev.target)) {
                // every time focus changes within the trap zone, remember the focused element so that
                // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))
                _this._previouslyFocusedElementInTrapZone = ev.target;
            }
        };
        _this._forceFocusInTrap = function (ev) {
            if (_this.props.disabled) {
                return;
            }
            if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {
                var focusedElement = _this._getDocument().activeElement;
                if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(_this._root.current, focusedElement)) {
                    _this.focus();
                    _this._hasFocus = true; // set focus here since we stop event propagation
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        _this._forceClickInTrap = function (ev) {
            if (_this.props.disabled) {
                return;
            }
            if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {
                var clickedElement = ev.target;
                if (clickedElement && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(_this._root.current, clickedElement)) {
                    _this.focus();
                    _this._hasFocus = true; // set focus here since we stop event propagation
                    ev.preventDefault();
                    ev.stopPropagation();
                }
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        return _this;
    }
    FocusTrapZone.prototype.componentDidMount = function () {
        this._bringFocusIntoZone();
        this._updateEventHandlers(this.props);
    };
    // tslint:disable-next-line function-name
    FocusTrapZone.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        var elementToFocusOnDismiss = nextProps.elementToFocusOnDismiss;
        if (elementToFocusOnDismiss && this._previouslyFocusedElementOutsideTrapZone !== elementToFocusOnDismiss) {
            this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss;
        }
        this._updateEventHandlers(nextProps);
    };
    FocusTrapZone.prototype.componentDidUpdate = function (prevProps) {
        var prevForceFocusInsideTrap = prevProps.forceFocusInsideTrap !== undefined ? prevProps.forceFocusInsideTrap : true;
        var newForceFocusInsideTrap = this.props.forceFocusInsideTrap !== undefined ? this.props.forceFocusInsideTrap : true;
        var prevDisabled = prevProps.disabled !== undefined ? prevProps.disabled : false;
        var newDisabled = this.props.disabled !== undefined ? this.props.disabled : false;
        if ((!prevForceFocusInsideTrap && newForceFocusInsideTrap) || (prevDisabled && !newDisabled)) {
            // Transition from forceFocusInsideTrap / FTZ disabled to enabled.
            // Emulate what happens when a FocusTrapZone gets mounted.
            this._bringFocusIntoZone();
        }
        else if ((prevForceFocusInsideTrap && !newForceFocusInsideTrap) || (!prevDisabled && newDisabled)) {
            // Transition from forceFocusInsideTrap / FTZ enabled to disabled.
            // Emulate what happens when a FocusTrapZone gets unmounted.
            this._returnFocusToInitiator();
        }
    };
    FocusTrapZone.prototype.componentWillUnmount = function () {
        // don't handle return focus unless forceFocusInsideTrap is true or focus is still within FocusTrapZone
        if (!this.props.disabled ||
            this.props.forceFocusInsideTrap ||
            !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._root.current, this._getDocument().activeElement)) {
            this._returnFocusToInitiator();
        }
    };
    FocusTrapZone.prototype.render = function () {
        var _a = this.props, className = _a.className, _b = _a.disabled, disabled = _b === void 0 ? false : _b, ariaLabelledBy = _a.ariaLabelledBy;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var bumperProps = {
            style: {
                pointerEvents: 'none',
                position: 'fixed' // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them
            },
            tabIndex: disabled ? -1 : 0,
            'data-is-visible': true
        };
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: className, ref: this._root, "aria-labelledby": ariaLabelledBy, onFocusCapture: this._onFocusCapture, onFocus: this._onRootFocus, onBlur: this._onRootBlur }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, bumperProps, { ref: this._firstBumper, onFocus: this._onFirstBumperFocus })),
            this.props.children,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, bumperProps, { ref: this._lastBumper, onFocus: this._onLastBumperFocus }))));
    };
    FocusTrapZone.prototype.focus = function () {
        var _a = this.props, focusPreviouslyFocusedInnerElement = _a.focusPreviouslyFocusedInnerElement, firstFocusableSelector = _a.firstFocusableSelector;
        if (focusPreviouslyFocusedInnerElement &&
            this._previouslyFocusedElementInTrapZone &&
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._root.current, this._previouslyFocusedElementInTrapZone)) {
            // focus on the last item that had focus in the zone before we left the zone
            this._focusAsync(this._previouslyFocusedElementInTrapZone);
            return;
        }
        var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector && firstFocusableSelector();
        var _firstFocusableChild = null;
        if (this._root.current) {
            if (focusSelector) {
                _firstFocusableChild = this._root.current.querySelector('.' + focusSelector);
            }
            // Fall back to first element if query selector did not match any elements.
            if (!_firstFocusableChild) {
                _firstFocusableChild = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNextElement"])(this._root.current, this._root.current.firstChild, false, false, false, true);
            }
        }
        if (_firstFocusableChild) {
            this._focusAsync(_firstFocusableChild);
        }
    };
    FocusTrapZone.prototype._focusAsync = function (element) {
        if (!this._isBumper(element)) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["focusAsync"])(element);
        }
    };
    FocusTrapZone.prototype._bringFocusIntoZone = function () {
        var _a = this.props, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.disableFirstFocus, disableFirstFocus = _c === void 0 ? false : _c;
        if (disabled) {
            return;
        }
        FocusTrapZone._focusStack.push(this);
        this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss
            ? elementToFocusOnDismiss
            : this._getDocument().activeElement;
        if (!disableFirstFocus && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._root.current, this._previouslyFocusedElementOutsideTrapZone)) {
            this.focus();
        }
    };
    FocusTrapZone.prototype._returnFocusToInitiator = function () {
        var _this = this;
        var ignoreExternalFocusing = this.props.ignoreExternalFocusing;
        FocusTrapZone._focusStack = FocusTrapZone._focusStack.filter(function (value) {
            return _this !== value;
        });
        var doc = this._getDocument();
        var activeElement = doc.activeElement;
        if (!ignoreExternalFocusing &&
            this._previouslyFocusedElementOutsideTrapZone &&
            typeof this._previouslyFocusedElementOutsideTrapZone.focus === 'function' &&
            (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(this._root.current, activeElement) || activeElement === doc.body)) {
            this._focusAsync(this._previouslyFocusedElementOutsideTrapZone);
        }
    };
    FocusTrapZone.prototype._updateEventHandlers = function (newProps) {
        var _a = newProps.isClickableOutsideFocusTrap, isClickableOutsideFocusTrap = _a === void 0 ? false : _a, _b = newProps.forceFocusInsideTrap, forceFocusInsideTrap = _b === void 0 ? true : _b;
        if (forceFocusInsideTrap && !this._disposeFocusHandler) {
            this._disposeFocusHandler = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(window, 'focus', this._forceFocusInTrap, true);
        }
        else if (!forceFocusInsideTrap && this._disposeFocusHandler) {
            this._disposeFocusHandler();
            this._disposeFocusHandler = undefined;
        }
        if (!isClickableOutsideFocusTrap && !this._disposeClickHandler) {
            this._disposeClickHandler = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(window, 'click', this._forceClickInTrap, true);
        }
        else if (isClickableOutsideFocusTrap && this._disposeClickHandler) {
            this._disposeClickHandler();
            this._disposeClickHandler = undefined;
        }
    };
    FocusTrapZone.prototype._isBumper = function (element) {
        return element === this._firstBumper.current || element === this._lastBumper.current;
    };
    FocusTrapZone.prototype._getDocument = function () {
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])(this._root.current);
    };
    FocusTrapZone._focusStack = [];
    return FocusTrapZone;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/FocusTrapZone/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FocusTrapZone/FocusTrapZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapZone", function() { return _FocusTrapZone__WEBPACK_IMPORTED_MODULE_0__["FocusTrapZone"]; });




/***/ }),

/***/ "./lib/components/FocusZone/FocusZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusZone", function() { return FocusZone; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/FocusZone/FocusZone.types.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("../merge-styles/lib/index.js");





var IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';
var IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';
var FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';
var TABINDEX = 'tabindex';
var NO_VERTICAL_WRAP = 'data-no-vertical-wrap';
var NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';
var LARGE_DISTANCE_FROM_CENTER = 999999999;
var LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;
var focusZoneStyles;
var focusZoneClass = 'ms-FocusZone';
// Helper function that will return a class for when the root is focused
function getRootClass() {
    if (!focusZoneStyles) {
        focusZoneStyles = Object(_uifabric_merge_styles__WEBPACK_IMPORTED_MODULE_4__["mergeStyles"])({
            selectors: {
                ':focus': {
                    outline: 'none'
                }
            }
        }, focusZoneClass);
    }
    return focusZoneStyles;
}
var _allInstances = {};
var _outerZones = new Set();
// Track the 1 global keydown listener we hook to window.
var _disposeGlobalKeyDownListener;
var ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search'];
var ALLOW_VIRTUAL_ELEMENTS = false;
var FocusZone = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FocusZone, _super);
    function FocusZone(props) {
        var _this = _super.call(this, props) || this;
        _this._disposables = [];
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onFocus = function (ev) {
            if (_this._portalContainsElement(ev.target)) {
                // If the event target is inside a portal do not process the event.
                return;
            }
            var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, onFocusNotification = _a.onFocusNotification;
            var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);
            var newActiveElement;
            if (onFocusNotification) {
                onFocusNotification();
            }
            if (isImmediateDescendant) {
                newActiveElement = ev.target;
            }
            else {
                var parentElement = ev.target;
                while (parentElement && parentElement !== _this._root.current) {
                    if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementTabbable"])(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {
                        newActiveElement = parentElement;
                        break;
                    }
                    parentElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(parentElement, ALLOW_VIRTUAL_ELEMENTS);
                }
            }
            var initialElementFocused = !_this._activeElement;
            // If the new active element is a child of this zone and received focus,
            // update alignment an immediate descendant
            if (newActiveElement && newActiveElement !== _this._activeElement) {
                if (isImmediateDescendant || initialElementFocused) {
                    _this._setFocusAlignment(newActiveElement, initialElementFocused);
                }
                _this._activeElement = newActiveElement;
                if (initialElementFocused) {
                    _this._updateTabIndexes();
                }
            }
            if (onActiveElementChanged) {
                onActiveElementChanged(_this._activeElement, ev);
            }
            if (doNotAllowFocusEventToPropagate) {
                ev.stopPropagation();
            }
        };
        _this._onBlur = function () {
            _this._setParkedFocus(false);
        };
        /**
         * Handle global tab presses so that we can patch tabindexes on the fly.
         */
        _this._onKeyDownCapture = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].tab) {
                _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });
            }
        };
        _this._onMouseDown = function (ev) {
            if (_this._portalContainsElement(ev.target)) {
                // If the event target is inside a portal do not process the event.
                return;
            }
            var disabled = _this.props.disabled;
            if (disabled) {
                return;
            }
            var target = ev.target;
            var path = [];
            while (target && target !== _this._root.current) {
                path.push(target);
                target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(target, ALLOW_VIRTUAL_ELEMENTS);
            }
            while (path.length) {
                target = path.pop();
                if (target && Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementTabbable"])(target)) {
                    _this._setActiveElement(target, true);
                }
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(target)) {
                    // Stop here since the focus zone will take care of its own children.
                    break;
                }
            }
        };
        /**
         * Handle the keystrokes.
         */
        _this._onKeyDown = function (ev) {
            if (_this._portalContainsElement(ev.target)) {
                // If the event target is inside a portal do not process the event.
                return;
            }
            var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke;
            if (disabled) {
                return;
            }
            if (_this.props.onKeyDown) {
                _this.props.onKeyDown(ev);
            }
            // If the default has been prevented, do not process keyboard events.
            if (ev.isDefaultPrevented()) {
                return;
            }
            if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {
                // If this element has focus, it is being controlled by a parent.
                // Ignore the keystroke.
                return;
            }
            if (isInnerZoneKeystroke && isInnerZoneKeystroke(ev) && _this._isImmediateDescendantOfZone(ev.target)) {
                // Try to focus
                var innerZone = _this._getFirstInnerZone();
                if (innerZone) {
                    if (!innerZone.focus(true)) {
                        return;
                    }
                }
                else if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusSubZone"])(ev.target)) {
                    if (!_this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNextElement"])(ev.target, ev.target.firstChild, true))) {
                        return;
                    }
                }
                else {
                    return;
                }
            }
            else if (ev.altKey) {
                return;
            }
            else {
                switch (ev.which) {
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].space:
                        if (_this._tryInvokeClickForFocusable(ev.target)) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].left:
                        if (direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical && _this._moveFocusLeft()) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].right:
                        if (direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical && _this._moveFocusRight()) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].up:
                        if (direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].horizontal && _this._moveFocusUp()) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].down:
                        if (direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].horizontal && _this._moveFocusDown()) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].tab:
                        if (_this.props.allowTabKey ||
                            _this.props.handleTabKey === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneTabbableElements"].all ||
                            (_this.props.handleTabKey === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneTabbableElements"].inputOnly && _this._isElementInput(ev.target))) {
                            var focusChanged = false;
                            _this._processingTabKey = true;
                            if (direction === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical ||
                                !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {
                                focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();
                            }
                            else if (direction === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].horizontal || direction === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].bidirectional) {
                                var tabWithDirection = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])() ? !ev.shiftKey : ev.shiftKey;
                                focusChanged = tabWithDirection ? _this._moveFocusLeft() : _this._moveFocusRight();
                            }
                            _this._processingTabKey = false;
                            if (focusChanged) {
                                break;
                            }
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].home:
                        if (_this._isElementInput(ev.target) && !_this._shouldInputLoseFocus(ev.target, false)) {
                            return false;
                        }
                        var firstChild = _this._root.current && _this._root.current.firstChild;
                        if (_this._root.current && firstChild && _this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNextElement"])(_this._root.current, firstChild, true))) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].end:
                        if (_this._isElementInput(ev.target) && !_this._shouldInputLoseFocus(ev.target, true)) {
                            return false;
                        }
                        var lastChild = _this._root.current && _this._root.current.lastChild;
                        if (_this._root.current && _this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getPreviousElement"])(_this._root.current, lastChild, true, true, true))) {
                            break;
                        }
                        return;
                    case _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].enter:
                        if (_this._tryInvokeClickForFocusable(ev.target)) {
                            break;
                        }
                        return;
                    default:
                        return;
                }
            }
            ev.preventDefault();
            ev.stopPropagation();
        };
        // Manage componentRef resolution.
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["warnDeprecations"])('FocusZone', props, {
                rootProps: undefined,
                allowTabKey: 'handleTabKey',
                elementType: 'as',
                ariaDescribedBy: 'aria-describedby',
                ariaLabelledBy: 'aria-labelledby'
            });
        }
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('FocusZone');
        _this._focusAlignment = {
            x: 0,
            y: 0
        };
        _this._processingTabKey = false;
        return _this;
    }
    /** Used for testing purposes only. */
    FocusZone.getOuterZones = function () {
        return _outerZones.size;
    };
    FocusZone.prototype.componentDidMount = function () {
        var root = this._root.current;
        _allInstances[this._id] = this;
        if (root) {
            var windowElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(root);
            var parentElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(root, ALLOW_VIRTUAL_ELEMENTS);
            while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(parentElement)) {
                    this._isInnerZone = true;
                    break;
                }
                parentElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(parentElement, ALLOW_VIRTUAL_ELEMENTS);
            }
            if (!this._isInnerZone) {
                _outerZones.add(this);
            }
            if (windowElement && _outerZones.size === 1) {
                _disposeGlobalKeyDownListener = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(windowElement, 'keydown', this._onKeyDownCapture, true);
            }
            this._disposables.push(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(root, 'blur', this._onBlur, true));
            // Assign initial tab indexes so that we can set initial focus as appropriate.
            this._updateTabIndexes();
            if (this.props.defaultActiveElement) {
                this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);
                this.focus();
            }
        }
    };
    FocusZone.prototype.componentDidUpdate = function () {
        var root = this._root.current;
        var doc = this._getDocument();
        if (doc && this._lastIndexPath && (doc.activeElement === doc.body || doc.activeElement === root)) {
            // The element has been removed after the render, attempt to restore focus.
            var elementToFocus = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getFocusableByIndexPath"])(root, this._lastIndexPath);
            if (elementToFocus) {
                this._setActiveElement(elementToFocus, true);
                elementToFocus.focus();
                this._setParkedFocus(false);
            }
            else {
                // We had a focus path to restore, but now that path is unresolvable. Park focus
                // on the container until we can try again.
                this._setParkedFocus(true);
            }
        }
    };
    FocusZone.prototype.componentWillUnmount = function () {
        delete _allInstances[this._id];
        if (!this._isInnerZone) {
            _outerZones.delete(this);
        }
        // Dispose all events.
        this._disposables.forEach(function (d) { return d(); });
        // If this is the last outer zone, remove the keydown listener.
        if (_outerZones.size === 0 && _disposeGlobalKeyDownListener) {
            _disposeGlobalKeyDownListener();
        }
    };
    FocusZone.prototype.render = function () {
        var _a = this.props, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["htmlElementProperties"]);
        var Tag = this.props.as || this.props.elementType || 'div';
        // Note, right before rendering/reconciling proceeds, we need to record if focus
        // was in the zone before the update. This helper will track this and, if focus
        // was actually in the zone, what the index path to the element is at this time.
        // Then, later in componentDidUpdate, we can evaluate if we need to restore it in
        // the case the element was removed.
        this._evaluateFocusBeforeRender();
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Tag, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy }, divProps, rootProps, { 
            // Once the getClassName correctly memoizes inputs this should
            // be replaced so that className is passed to getRootClass and is included there so
            // the class names will always be in the same order.
            className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(getRootClass(), className), ref: this._root, "data-focuszone-id": this._id, onKeyDown: this._onKeyDown, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));
    };
    /**
     * Sets focus to the first tabbable item in the zone.
     * @param forceIntoFirstElement - If true, focus will be forced into the first element, even
     * if focus is already in the focus zone.
     * @returns True if focus could be set to an active element, false if no operation was taken.
     */
    FocusZone.prototype.focus = function (forceIntoFirstElement) {
        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }
        if (this._root.current) {
            if (!forceIntoFirstElement && this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' && this._isInnerZone) {
                var ownerZoneElement = this._getOwnerZone(this._root.current);
                if (ownerZoneElement !== this._root.current) {
                    var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];
                    return !!ownerZone && ownerZone.focusElement(this._root.current);
                }
                return false;
            }
            else if (!forceIntoFirstElement &&
                this._activeElement &&
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(this._root.current, this._activeElement) &&
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementTabbable"])(this._activeElement)) {
                this._activeElement.focus();
                return true;
            }
            else {
                var firstChild = this._root.current.firstChild;
                return this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNextElement"])(this._root.current, firstChild, true));
            }
        }
        return false;
    };
    /**
     * Sets focus to a specific child element within the zone. This can be used in conjunction with
     * onBeforeFocus to created delayed focus scenarios (like animate the scroll position to the correct
     * location and then focus.)
     * @param element - The child element within the zone to focus.
     * @returns True if focus could be set to an active element, false if no operation was taken.
     */
    FocusZone.prototype.focusElement = function (element) {
        var onBeforeFocus = this.props.onBeforeFocus;
        if (onBeforeFocus && !onBeforeFocus(element)) {
            return false;
        }
        if (element) {
            // when we Set focus to a specific child, we should recalculate the alignment depend on its position
            this._setActiveElement(element);
            if (this._activeElement) {
                this._activeElement.focus();
            }
            return true;
        }
        return false;
    };
    /**
     * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference, rather than a center based on
     * the last horizontal motion.
     * @param point - the new reference point.
     */
    FocusZone.prototype.setFocusAlignment = function (point) {
        this._focusAlignment = point;
    };
    FocusZone.prototype._evaluateFocusBeforeRender = function () {
        var root = this._root.current;
        var doc = this._getDocument();
        if (doc) {
            var focusedElement = doc.activeElement;
            // Only update the index path if we are not parked on the root.
            if (focusedElement !== root) {
                var shouldRestoreFocus = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(root, focusedElement, false);
                this._lastIndexPath = shouldRestoreFocus ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getElementIndexPath"])(root, focusedElement) : undefined;
            }
        }
    };
    /**
     * When focus is in the zone at render time but then all focusable elements are removed,
     * we "park" focus temporarily on the root. Once we update with focusable children, we restore
     * focus to the closest path from previous. If the user tabs away from the parked container,
     * we restore focusability to the pre-parked state.
     */
    FocusZone.prototype._setParkedFocus = function (isParked) {
        var root = this._root.current;
        if (root && this._isParked !== isParked) {
            this._isParked = isParked;
            if (isParked) {
                if (!this.props.allowFocusRoot) {
                    this._parkedTabIndex = root.getAttribute('tabindex');
                    root.setAttribute('tabindex', '-1');
                }
                root.focus();
            }
            else {
                if (!this.props.allowFocusRoot) {
                    if (this._parkedTabIndex) {
                        root.setAttribute('tabindex', this._parkedTabIndex);
                        this._parkedTabIndex = undefined;
                    }
                    else {
                        root.removeAttribute('tabindex');
                    }
                }
            }
        }
    };
    FocusZone.prototype._setActiveElement = function (element, forceAlignment) {
        var previousActiveElement = this._activeElement;
        this._activeElement = element;
        if (previousActiveElement) {
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(previousActiveElement)) {
                this._updateTabIndexes(previousActiveElement);
            }
            previousActiveElement.tabIndex = -1;
        }
        if (this._activeElement) {
            if (!this._focusAlignment || forceAlignment) {
                this._setFocusAlignment(element, true, true);
            }
            this._activeElement.tabIndex = 0;
        }
    };
    /**
     * Walk up the dom try to find a focusable element.
     */
    FocusZone.prototype._tryInvokeClickForFocusable = function (target) {
        if (target === this._root.current) {
            return false;
        }
        do {
            if (target.tagName === 'BUTTON' || target.tagName === 'A' || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {
                return false;
            }
            if (this._isImmediateDescendantOfZone(target) &&
                target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&
                target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["raiseClick"])(target);
                return true;
            }
            target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(target, ALLOW_VIRTUAL_ELEMENTS);
        } while (target !== this._root.current);
        return false;
    };
    /**
     * Traverse to find first child zone.
     */
    FocusZone.prototype._getFirstInnerZone = function (rootElement) {
        rootElement = rootElement || this._activeElement || this._root.current;
        if (!rootElement) {
            return null;
        }
        if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(rootElement)) {
            return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];
        }
        var child = rootElement.firstElementChild;
        while (child) {
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(child)) {
                return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];
            }
            var match = this._getFirstInnerZone(child);
            if (match) {
                return match;
            }
            child = child.nextElementSibling;
        }
        return null;
    };
    FocusZone.prototype._moveFocus = function (isForward, getDistanceFromCenter, ev, useDefaultWrap) {
        if (useDefaultWrap === void 0) { useDefaultWrap = true; }
        var element = this._activeElement;
        var candidateDistance = -1;
        var candidateElement = undefined;
        var changedFocus = false;
        var isBidirectional = this.props.direction === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].bidirectional;
        if (!element || !this._root.current) {
            return false;
        }
        if (this._isElementInput(element)) {
            if (!this._shouldInputLoseFocus(element, isForward)) {
                return false;
            }
        }
        var activeRect = isBidirectional ? element.getBoundingClientRect() : null;
        do {
            element = (isForward ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNextElement"])(this._root.current, element) : Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getPreviousElement"])(this._root.current, element));
            if (isBidirectional) {
                if (element) {
                    var targetRect = element.getBoundingClientRect();
                    var elementDistance = getDistanceFromCenter(activeRect, targetRect);
                    if (elementDistance === -1 && candidateDistance === -1) {
                        candidateElement = element;
                        break;
                    }
                    if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {
                        candidateDistance = elementDistance;
                        candidateElement = element;
                    }
                    if (candidateDistance >= 0 && elementDistance < 0) {
                        break;
                    }
                }
            }
            else {
                candidateElement = element;
                break;
            }
        } while (element);
        // Focus the closest candidate
        if (candidateElement && candidateElement !== this._activeElement) {
            changedFocus = true;
            this.focusElement(candidateElement);
        }
        else if (this.props.isCircularNavigation && useDefaultWrap) {
            if (isForward) {
                return this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNextElement"])(this._root.current, this._root.current.firstElementChild, true));
            }
            else {
                return this.focusElement(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getPreviousElement"])(this._root.current, this._root.current.lastElementChild, true, true, true));
            }
        }
        return changedFocus;
    };
    FocusZone.prototype._moveFocusDown = function () {
        var _this = this;
        var targetTop = -1;
        var leftAlignment = this._focusAlignment.x;
        if (this._moveFocus(true, function (activeRect, targetRect) {
            var distance = -1;
            // ClientRect values can be floats that differ by very small fractions of a decimal.
            // If the difference between top and bottom are within a pixel then we should treat
            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,
            // but without Math.Floor they will be handled incorrectly.
            var targetRectTop = Math.floor(targetRect.top);
            var activeRectBottom = Math.floor(activeRect.bottom);
            if (targetRectTop < activeRectBottom) {
                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {
                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;
                }
                return LARGE_DISTANCE_FROM_CENTER;
            }
            if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {
                targetTop = targetRectTop;
                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {
                    distance = 0;
                }
                else {
                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);
                }
            }
            return distance;
        })) {
            this._setFocusAlignment(this._activeElement, false, true);
            return true;
        }
        return false;
    };
    FocusZone.prototype._moveFocusUp = function () {
        var _this = this;
        var targetTop = -1;
        var leftAlignment = this._focusAlignment.x;
        if (this._moveFocus(false, function (activeRect, targetRect) {
            var distance = -1;
            // ClientRect values can be floats that differ by very small fractions of a decimal.
            // If the difference between top and bottom are within a pixel then we should treat
            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,
            // but without Math.Floor they will be handled incorrectly.
            var targetRectBottom = Math.floor(targetRect.bottom);
            var targetRectTop = Math.floor(targetRect.top);
            var activeRectTop = Math.floor(activeRect.top);
            if (targetRectBottom > activeRectTop) {
                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {
                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;
                }
                return LARGE_DISTANCE_FROM_CENTER;
            }
            if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {
                targetTop = targetRectTop;
                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {
                    distance = 0;
                }
                else {
                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);
                }
            }
            return distance;
        })) {
            this._setFocusAlignment(this._activeElement, false, true);
            return true;
        }
        return false;
    };
    FocusZone.prototype._moveFocusLeft = function () {
        var _this = this;
        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);
        if (this._moveFocus(Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])(), function (activeRect, targetRect) {
            var distance = -1;
            var topBottomComparison;
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])()) {
                // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.
                // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.
                // This is important, because we want to be comparing the top of the target rect
                // with the bottom of the active rect.
                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));
            }
            else {
                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));
            }
            if (topBottomComparison && targetRect.right <= activeRect.right && _this.props.direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical) {
                distance = activeRect.right - targetRect.right;
            }
            else {
                if (!shouldWrap) {
                    distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;
                }
            }
            return distance;
        }, undefined /*ev*/, shouldWrap)) {
            this._setFocusAlignment(this._activeElement, true, false);
            return true;
        }
        return false;
    };
    FocusZone.prototype._moveFocusRight = function () {
        var _this = this;
        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);
        if (this._moveFocus(!Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])(), function (activeRect, targetRect) {
            var distance = -1;
            var topBottomComparison;
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRTL"])()) {
                // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.
                // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.
                // This is important, because we want to be comparing the bottom of the target rect
                // with the top of the active rect.
                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));
            }
            else {
                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));
            }
            if (topBottomComparison && targetRect.left >= activeRect.left && _this.props.direction !== _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical) {
                distance = targetRect.left - activeRect.left;
            }
            else if (!shouldWrap) {
                distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;
            }
            return distance;
        }, undefined /*ev*/, shouldWrap)) {
            this._setFocusAlignment(this._activeElement, true, false);
            return true;
        }
        return false;
    };
    FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {
        if (this.props.direction === _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].bidirectional && (!this._focusAlignment || isHorizontal || isVertical)) {
            var rect = element.getBoundingClientRect();
            var left = rect.left + rect.width / 2;
            var top_1 = rect.top + rect.height / 2;
            if (!this._focusAlignment) {
                this._focusAlignment = {
                    x: left,
                    y: top_1
                };
            }
            if (isHorizontal) {
                this._focusAlignment.x = left;
            }
            if (isVertical) {
                this._focusAlignment.y = top_1;
            }
        }
    };
    FocusZone.prototype._isImmediateDescendantOfZone = function (element) {
        return this._getOwnerZone(element) === this._root.current;
    };
    FocusZone.prototype._getOwnerZone = function (element) {
        var parentElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(element, ALLOW_VIRTUAL_ELEMENTS);
        while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(parentElement)) {
                return parentElement;
            }
            parentElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getParent"])(parentElement, ALLOW_VIRTUAL_ELEMENTS);
        }
        return parentElement;
    };
    FocusZone.prototype._updateTabIndexes = function (element) {
        if (!element && this._root.current) {
            this._defaultFocusElement = null;
            element = this._root.current;
            if (this._activeElement && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(element, this._activeElement)) {
                this._activeElement = null;
            }
        }
        // If active element changes state to disabled, set it to null.
        // Otherwise, we lose keyboard accessibility to other elements in focus zone.
        if (this._activeElement && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementTabbable"])(this._activeElement)) {
            this._activeElement = null;
        }
        var childNodes = element && element.children;
        for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {
            var child = childNodes[childIndex];
            if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementFocusZone"])(child)) {
                // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.
                if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {
                    child.setAttribute(TABINDEX, '-1');
                }
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["isElementTabbable"])(child)) {
                    if (this.props.disabled) {
                        child.setAttribute(TABINDEX, '-1');
                    }
                    else if (!this._isInnerZone && ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {
                        this._defaultFocusElement = child;
                        if (child.getAttribute(TABINDEX) !== '0') {
                            child.setAttribute(TABINDEX, '0');
                        }
                    }
                    else if (child.getAttribute(TABINDEX) !== '-1') {
                        child.setAttribute(TABINDEX, '-1');
                    }
                }
                else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {
                    // Disgusting IE hack. Sad face.
                    child.setAttribute('focusable', 'false');
                }
            }
            else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {
                if (!this._isInnerZone && ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {
                    this._defaultFocusElement = child;
                    if (child.getAttribute(TABINDEX) !== '0') {
                        child.setAttribute(TABINDEX, '0');
                    }
                }
                else if (child.getAttribute(TABINDEX) !== '-1') {
                    child.setAttribute(TABINDEX, '-1');
                }
            }
            this._updateTabIndexes(child);
        }
    };
    FocusZone.prototype._isElementInput = function (element) {
        if (element && element.tagName && (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {
            return true;
        }
        return false;
    };
    FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {
        // If a tab was used, we want to focus on the next element.
        if (!this._processingTabKey && element && element.type && ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {
            var selectionStart = element.selectionStart;
            var selectionEnd = element.selectionEnd;
            var isRangeSelected = selectionStart !== selectionEnd;
            var inputValue = element.value;
            // We shouldn't lose focus in the following cases:
            // 1. There is range selected.
            // 2. When selection start is larger than 0 and it is backward.
            // 3. when selection start is not the end of length and it is forward.
            // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit tab)
            // and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is determined by calling the
            // callback shouldInputLoseFocusOnArrowKey
            if (isRangeSelected ||
                (selectionStart > 0 && !isForward) ||
                (selectionStart !== inputValue.length && isForward) ||
                (!!this.props.handleTabKey && !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {
                return false;
            }
        }
        return true;
    };
    FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {
        return !!this.props.checkForNoWrap ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["shouldWrapFocus"])(element, noWrapDataAttribute) : true;
    };
    /**
     * Returns true if the element is a descendant of the FocusZone through a React portal.
     */
    FocusZone.prototype._portalContainsElement = function (element) {
        return element && !!this._root.current && Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["portalContainsElement"])(element, this._root.current);
    };
    FocusZone.prototype._getDocument = function () {
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getDocument"])(this._root.current);
    };
    FocusZone.defaultProps = {
        isCircularNavigation: false,
        direction: _FocusZone_types__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].bidirectional
    };
    return FocusZone;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/FocusZone/FocusZone.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusZoneTabbableElements", function() { return FocusZoneTabbableElements; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusZoneDirection", function() { return FocusZoneDirection; });
/**
 * {@docCategory FocusZone}
 */
var FocusZoneTabbableElements = {
    /** Tabbing is not allowed */
    none: 0,
    /** All tabbing action is allowed */
    all: 1,
    /** Tabbing is allowed only on input elements */
    inputOnly: 2
};
/**
 * {@docCategory FocusZone}
 */
var FocusZoneDirection;
(function (FocusZoneDirection) {
    /** Only react to up/down arrows. */
    FocusZoneDirection[FocusZoneDirection["vertical"] = 0] = "vertical";
    /** Only react to left/right arrows. */
    FocusZoneDirection[FocusZoneDirection["horizontal"] = 1] = "horizontal";
    /** React to all arrows. */
    FocusZoneDirection[FocusZoneDirection["bidirectional"] = 2] = "bidirectional";
    /**
     * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.
     * Right and Left arrow keys are swapped in RTL mode.
     */
    FocusZoneDirection[FocusZoneDirection["domOrder"] = 3] = "domOrder";
})(FocusZoneDirection || (FocusZoneDirection = {}));


/***/ }),

/***/ "./lib/components/FocusZone/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/FocusZone/FocusZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZone", function() { return _FocusZone__WEBPACK_IMPORTED_MODULE_0__["FocusZone"]; });

/* harmony import */ var _FocusZone_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/FocusZone/FocusZone.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneTabbableElements", function() { return _FocusZone_types__WEBPACK_IMPORTED_MODULE_1__["FocusZoneTabbableElements"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneDirection", function() { return _FocusZone_types__WEBPACK_IMPORTED_MODULE_1__["FocusZoneDirection"]; });





/***/ }),

/***/ "./lib/components/GroupedList/GroupFooter.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupFooterBase", function() { return GroupFooterBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupSpacer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
var GroupFooterBase = function (props) {
    var group = props.group, groupLevel = props.groupLevel, footerText = props.footerText, indentWidth = props.indentWidth, styles = props.styles, theme = props.theme;
    var classNames = getClassNames(styles, { theme: theme });
    if (group && footerText) {
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.root },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_GroupSpacer__WEBPACK_IMPORTED_MODULE_2__["GroupSpacer"], { indentWidth: indentWidth, count: groupLevel }),
            footerText));
    }
    return null;
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupFooter.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupFooter", function() { return GroupFooter; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupFooter_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupFooter.styles.js");
/* harmony import */ var _GroupFooter_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupFooter.base.js");



var GroupFooter = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_GroupFooter_base__WEBPACK_IMPORTED_MODULE_2__["GroupFooterBase"], _GroupFooter_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'GroupFooter'
});


/***/ }),

/***/ "./lib/components/GroupedList/GroupFooter.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-groupFooter'
};
var getStyles = function (props) {
    var theme = props.theme, className = props.className;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            theme.fonts.medium,
            classNames.root,
            {
                position: 'relative',
                padding: '5px 38px'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupHeader.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupHeaderBase", function() { return GroupHeaderBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony import */ var _Check__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Check.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _GroupSpacer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");
/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Spinner.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/FocusZone.js");









var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var GroupHeaderBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupHeaderBase, _super);
    function GroupHeaderBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onToggleCollapse = function (ev) {
            var _a = _this.props, group = _a.group, onToggleCollapse = _a.onToggleCollapse, isGroupLoading = _a.isGroupLoading;
            var isCollapsed = _this.state.isCollapsed;
            var newCollapsed = !isCollapsed;
            var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(group);
            _this.setState({
                isCollapsed: newCollapsed,
                isLoadingVisible: newLoadingVisible
            });
            if (onToggleCollapse) {
                onToggleCollapse(group);
            }
            ev.stopPropagation();
            ev.preventDefault();
        };
        _this._onToggleSelectGroupClick = function (ev) {
            var _a = _this.props, onToggleSelectGroup = _a.onToggleSelectGroup, group = _a.group;
            if (onToggleSelectGroup) {
                onToggleSelectGroup(group);
            }
            ev.preventDefault();
            ev.stopPropagation();
        };
        _this._onHeaderClick = function () {
            var _a = _this.props, group = _a.group, onGroupHeaderClick = _a.onGroupHeaderClick, onToggleSelectGroup = _a.onToggleSelectGroup;
            if (onGroupHeaderClick) {
                onGroupHeaderClick(group);
            }
            else if (onToggleSelectGroup) {
                onToggleSelectGroup(group);
            }
        };
        _this._onRenderTitle = function (props) {
            var group = props.group;
            if (!group) {
                return null;
            }
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.title },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", null, group.name),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.headerCount },
                    "(",
                    group.count,
                    group.hasMoreData && '+',
                    ")")));
        };
        _this.state = {
            isCollapsed: (_this.props.group && _this.props.group.isCollapsed),
            isLoadingVisible: false
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    GroupHeaderBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.group) {
            var newCollapsed = newProps.group.isCollapsed;
            var isGroupLoading = newProps.isGroupLoading;
            var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(newProps.group);
            this.setState({
                isCollapsed: newCollapsed || false,
                isLoadingVisible: newLoadingVisible || false
            });
        }
    };
    GroupHeaderBase.prototype.render = function () {
        var _a = this.props, group = _a.group, groupLevel = _a.groupLevel, viewport = _a.viewport, selectionMode = _a.selectionMode, loadingText = _a.loadingText, _b = _a.isSelected, isSelected = _b === void 0 ? false : _b, _c = _a.selected, selected = _c === void 0 ? false : _c, indentWidth = _a.indentWidth, _d = _a.onRenderTitle, onRenderTitle = _d === void 0 ? this._onRenderTitle : _d, _e = _a.isCollapsedGroupSelectVisible, isCollapsedGroupSelectVisible = _e === void 0 ? true : _e, expandButtonProps = _a.expandButtonProps, selectAllButtonProps = _a.selectAllButtonProps, theme = _a.theme, styles = _a.styles, className = _a.className, groupedListId = _a.groupedListId, compact = _a.compact;
        var _f = this.state, isCollapsed = _f.isCollapsed, isLoadingVisible = _f.isLoadingVisible;
        var canSelectGroup = selectionMode === _utilities_selection_index__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple;
        var isSelectionCheckVisible = canSelectGroup && (isCollapsedGroupSelectVisible || !(group && group.isCollapsed));
        var currentlySelected = isSelected || selected;
        var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])();
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            selected: currentlySelected,
            isCollapsed: isCollapsed,
            compact: compact
        });
        if (!group) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, style: viewport ? { minWidth: viewport.width } : {}, onClick: this._onHeaderClick, "aria-label": group.ariaLabel || group.name, "data-is-focusable": true },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_8__["FocusZone"], { className: this._classNames.groupHeaderContainer, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_8__["FocusZoneDirection"].horizontal },
                isSelectionCheckVisible ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ type: "button", className: this._classNames.check, role: "checkbox", "aria-checked": currentlySelected, "data-selection-toggle": true, onClick: this._onToggleSelectGroupClick }, selectAllButtonProps),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Check__WEBPACK_IMPORTED_MODULE_4__["Check"], { checked: currentlySelected }))) : (selectionMode !== _utilities_selection_index__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].none && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupSpacer__WEBPACK_IMPORTED_MODULE_6__["GroupSpacer"], { indentWidth: indentWidth, count: 1 })),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupSpacer__WEBPACK_IMPORTED_MODULE_6__["GroupSpacer"], { indentWidth: indentWidth, count: groupLevel }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.dropIcon },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: "Tag" })),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ type: "button", className: this._classNames.expand, onClick: this._onToggleCollapse, "aria-expanded": group ? !group.isCollapsed : undefined, "aria-controls": group && !group.isCollapsed ? groupedListId : undefined }, expandButtonProps),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { className: this._classNames.expandIsCollapsed, iconName: isRTL ? 'ChevronLeftMed' : 'ChevronRightMed' })),
                onRenderTitle(this.props, this._onRenderTitle),
                isLoadingVisible && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Spinner__WEBPACK_IMPORTED_MODULE_7__["Spinner"], { label: loadingText }))));
    };
    GroupHeaderBase.defaultProps = {
        expandButtonProps: { 'aria-label': 'expand collapse group' }
    };
    return GroupHeaderBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/GroupedList/GroupHeader.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupHeader", function() { return GroupHeader; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupHeader_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupHeader.styles.js");
/* harmony import */ var _GroupHeader_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupHeader.base.js");



var GroupHeader = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_GroupHeader_base__WEBPACK_IMPORTED_MODULE_2__["GroupHeaderBase"], _GroupHeader_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'GroupHeader'
});


/***/ }),

/***/ "./lib/components/GroupedList/GroupHeader.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _DetailsList_DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");
/* harmony import */ var _DetailsList_DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/DetailsList/DetailsRowCheck.styles.js");
/* harmony import */ var _GroupSpacer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");




// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.

var GlobalClassNames = {
    root: 'ms-GroupHeader',
    compact: 'ms-GroupHeader--compact',
    check: 'ms-GroupHeader-check',
    dropIcon: 'ms-GroupHeader-dropIcon',
    expand: 'ms-GroupHeader-expand',
    isCollapsed: 'is-collapsed',
    title: 'ms-GroupHeader-title',
    isSelected: 'is-selected',
    iconTag: 'ms-Icon--Tag',
    group: 'ms-GroupedList-group',
    isDropping: 'is-dropping'
};
var beziers = {
    easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',
    easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',
    easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)'
};
var DEFAULT_GROUP_HEADER_HEIGHT = 48;
var COMPACT_GROUP_HEADER_HEIGHT = 40;
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var theme = props.theme, className = props.className, selected = props.selected, isCollapsed = props.isCollapsed, compact = props.compact;
    var cellLeftPadding = _DetailsList_DetailsRow_styles__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_CELL_STYLE_PROPS"].cellLeftPadding; // padding from the source to align GroupHeader title with DetailsRow's first cell.
    var finalRowHeight = compact ? COMPACT_GROUP_HEADER_HEIGHT : DEFAULT_GROUP_HEADER_HEIGHT;
    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var checkExpandResetStyles = [
        Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
        {
            cursor: 'default',
            background: 'none',
            backgroundColor: 'transparent',
            border: 'none',
            padding: 0 // cancel default <button> padding
        }
    ];
    return {
        root: [
            classNames.root,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            theme.fonts.medium,
            {
                borderBottom: "1px solid " + semanticColors.listBackground,
                cursor: 'default',
                userSelect: 'none',
                selectors: (_a = {
                        ':hover': {
                            background: semanticColors.listItemBackgroundHovered,
                            color: semanticColors.actionLinkHovered
                        }
                    },
                    _a["&:hover ." + classNames.check] = {
                        opacity: 1
                    },
                    _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus ." + classNames.check] = {
                        opacity: 1
                    },
                    _a[":global(." + classNames.group + "." + classNames.isDropping + ")"] = {
                        selectors: (_b = {},
                            _b["& > ." + classNames.root + " ." + classNames.dropIcon] = {
                                transition: "transform " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue4 + " " + beziers.easeOutCirc + " opacity " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue1 + " " + beziers.easeOutSine,
                                transitionDelay: _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue3,
                                opacity: 1,
                                transform: "rotate(0.2deg) scale(1);" // rotation prevents jittery motion in IE
                            },
                            _b["." + classNames.check] = {
                                opacity: 0
                            },
                            _b)
                    },
                    _a)
            },
            selected && [
                classNames.isSelected,
                {
                    background: semanticColors.listItemBackgroundChecked,
                    selectors: (_c = {
                            ':hover': {
                                background: semanticColors.listItemBackgroundCheckedHovered
                            }
                        },
                        _c["" + classNames.check] = {
                            opacity: 1
                        },
                        _c)
                }
            ],
            compact && [classNames.compact, { border: 'none' }],
            className
        ],
        groupHeaderContainer: [
            {
                display: 'flex',
                alignItems: 'center',
                height: finalRowHeight
            }
        ],
        headerCount: [
            {
                padding: '0px 4px'
            }
        ],
        check: [
            classNames.check,
            checkExpandResetStyles,
            {
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                // paddingTop and marginTop brought from the DetailsRow.styles.ts with explanation below.
                // Ensure that the check cell covers the top border of the cell.
                // This ensures the click target does not leave a spot which would
                // cause other items to be deselected.
                paddingTop: 1,
                marginTop: -1,
                opacity: 0,
                width: _DetailsList_DetailsRowCheck_styles__WEBPACK_IMPORTED_MODULE_3__["CHECK_CELL_WIDTH"],
                height: finalRowHeight,
                selectors: (_d = {},
                    _d["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus"] = {
                        opacity: 1
                    },
                    _d)
            }
        ],
        expand: [
            classNames.expand,
            checkExpandResetStyles,
            {
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                fontSize: fonts.small.fontSize,
                width: _GroupSpacer__WEBPACK_IMPORTED_MODULE_4__["SPACER_WIDTH"],
                height: finalRowHeight,
                color: selected ? palette.neutralPrimary : palette.neutralSecondary,
                selectors: {
                    ':hover': {
                        backgroundColor: selected ? palette.neutralQuaternary : palette.neutralLight
                    },
                    ':active': {
                        backgroundColor: selected ? palette.neutralTertiaryAlt : palette.neutralQuaternaryAlt
                    }
                }
            }
        ],
        expandIsCollapsed: [
            isCollapsed
                ? [
                    classNames.isCollapsed,
                    {
                        transform: 'rotate(0deg)',
                        transformOrigin: '50% 50%',
                        transition: 'transform .1s linear'
                    }
                ]
                : {
                    transform: 'rotate(90deg)',
                    transformOrigin: '50% 50%',
                    transition: 'transform .1s linear'
                }
        ],
        title: [
            classNames.title,
            {
                paddingLeft: cellLeftPadding,
                fontSize: compact ? fonts.medium.fontSize : fonts.mediumPlus.fontSize,
                fontWeight: isCollapsed ? _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular : _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                cursor: 'pointer',
                outline: 0,
                whiteSpace: 'nowrap',
                textOverflow: 'ellipsis'
            }
        ],
        dropIcon: [
            classNames.dropIcon,
            {
                position: 'absolute',
                left: -26,
                fontSize: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].large,
                color: palette.neutralSecondary,
                transition: "transform " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + beziers.easeInBack + ", opacity " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue4 + " " + beziers.easeOutSine,
                opacity: 0,
                transform: 'rotate(0.2deg) scale(0.65)',
                transformOrigin: '10px 10px',
                selectors: (_e = {},
                    _e[":global(." + classNames.iconTag + ")"] = {
                        position: 'absolute'
                    },
                    _e)
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupShowAll.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupShowAllBase", function() { return GroupShowAllBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Link.js");
/* harmony import */ var _GroupSpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
var GroupShowAllBase = function (props) {
    var group = props.group, groupLevel = props.groupLevel, _a = props.showAllLinkText, showAllLinkText = _a === void 0 ? 'Show All' : _a, styles = props.styles, theme = props.theme, onToggleSummarize = props.onToggleSummarize;
    var classNames = getClassNames(styles, { theme: theme });
    var memoizedOnClick = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function (ev) {
        onToggleSummarize(group);
        ev.stopPropagation();
        ev.preventDefault();
    }, [onToggleSummarize, group]);
    if (group) {
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.root },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_GroupSpacer__WEBPACK_IMPORTED_MODULE_3__["GroupSpacer"], { count: groupLevel }),
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_Link__WEBPACK_IMPORTED_MODULE_2__["Link"], { onClick: memoizedOnClick }, showAllLinkText)));
    }
    return null;
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupShowAll.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupShowAll", function() { return GroupShowAll; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupShowAll_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupShowAll.styles.js");
/* harmony import */ var _GroupShowAll_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupShowAll.base.js");



var GroupShowAll = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_GroupShowAll_base__WEBPACK_IMPORTED_MODULE_2__["GroupShowAllBase"], _GroupShowAll_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, { scope: 'GroupShowAll' });


/***/ }),

/***/ "./lib/components/GroupedList/GroupShowAll.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-GroupShowAll',
    link: 'ms-Link'
};
var getStyles = function (props) {
    var _a;
    var theme = props.theme;
    var fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                position: 'relative',
                padding: '10px 84px',
                cursor: 'pointer',
                selectors: (_a = {},
                    _a["." + classNames.link] = {
                        fontSize: fonts.small.fontSize
                    },
                    _a)
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupSpacer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SPACER_WIDTH", function() { return SPACER_WIDTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupSpacer", function() { return GroupSpacer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

var SPACER_WIDTH = 36;
var GroupSpacer = function (props) {
    var count = props.count, _a = props.indentWidth, indentWidth = _a === void 0 ? SPACER_WIDTH : _a;
    var width = count * indentWidth;
    return count > 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: 'ms-GroupSpacer', style: { display: 'inline-block', width: width } }) : null;
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupedList.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedListBase", function() { return GroupedListBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupedListSection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/GroupedList/GroupedListSection.js");
/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/List.js");
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony import */ var _DetailsList_DetailsRow_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/DetailsList/DetailsRow.styles.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ROW_HEIGHT = _DetailsList_DetailsRow_styles__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_ROW_HEIGHTS"].rowHeight, COMPACT_ROW_HEIGHT = _DetailsList_DetailsRow_styles__WEBPACK_IMPORTED_MODULE_6__["DEFAULT_ROW_HEIGHTS"].compactRowHeight;
var GroupedListBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedListBase, _super);
    function GroupedListBase(props) {
        var _this = _super.call(this, props) || this;
        _this._list = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._renderGroup = function (group, groupIndex) {
            var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, groupProps = _a.groupProps, items = _a.items, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selectionMode = _a.selectionMode, selection = _a.selection, viewport = _a.viewport, onShouldVirtualize = _a.onShouldVirtualize, groups = _a.groups, compact = _a.compact;
            // override group header/footer props as needed
            var dividerProps = {
                onToggleSelectGroup: _this._onToggleSelectGroup,
                onToggleCollapse: _this._onToggleCollapse,
                onToggleSummarize: _this._onToggleSummarize
            };
            var headerProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, groupProps.headerProps, dividerProps);
            var showAllProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, groupProps.showAllProps, dividerProps);
            var footerProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, groupProps.footerProps, dividerProps);
            var groupNestingDepth = _this._getGroupNestingDepth();
            if (!groupProps.showEmptyGroups && group && group.count === 0) {
                return null;
            }
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupedListSection__WEBPACK_IMPORTED_MODULE_3__["GroupedListSection"], { ref: 'group_' + groupIndex, key: _this._getGroupKey(group, groupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: groupProps && groupProps.getGroupItemLimit, group: group, groupIndex: groupIndex, groupNestingDepth: groupNestingDepth, groupProps: groupProps, headerProps: headerProps, listProps: listProps, items: items, onRenderCell: onRenderCell, onRenderGroupHeader: groupProps.onRenderHeader, onRenderGroupShowAll: groupProps.onRenderShowAll, onRenderGroupFooter: groupProps.onRenderFooter, selectionMode: selectionMode, selection: selection, showAllProps: showAllProps, viewport: viewport, onShouldVirtualize: onShouldVirtualize, groupedListClassNames: _this._classNames, groups: groups, compact: compact }));
        };
        _this._getDefaultGroupItemLimit = function (group) {
            return group.count;
        };
        _this._getGroupItemLimit = function (group) {
            var groupProps = _this.props.groupProps;
            var getGroupItemLimit = groupProps && groupProps.getGroupItemLimit ? groupProps.getGroupItemLimit : _this._getDefaultGroupItemLimit;
            return getGroupItemLimit(group);
        };
        _this._getGroupHeight = function (group) {
            var rowHeight = _this.props.compact ? COMPACT_ROW_HEIGHT : ROW_HEIGHT;
            return rowHeight + (group.isCollapsed ? 0 : rowHeight * _this._getGroupItemLimit(group));
        };
        _this._getPageHeight = function (itemIndex) {
            var groups = _this.state.groups;
            var _a = _this.props.getGroupHeight, getGroupHeight = _a === void 0 ? _this._getGroupHeight : _a;
            var pageGroup = groups && groups[itemIndex];
            if (pageGroup) {
                return getGroupHeight(pageGroup, itemIndex);
            }
            else {
                return 0;
            }
        };
        _this._onToggleCollapse = function (group) {
            var groupProps = _this.props.groupProps;
            var onToggleCollapse = groupProps && groupProps.headerProps && groupProps.headerProps.onToggleCollapse;
            if (group) {
                if (onToggleCollapse) {
                    onToggleCollapse(group);
                }
                group.isCollapsed = !group.isCollapsed;
                _this._updateIsSomeGroupExpanded();
                _this.forceUpdate();
            }
        };
        _this._onToggleSelectGroup = function (group) {
            if (group) {
                _this.props.selection.toggleRangeSelected(group.startIndex, group.count);
            }
        };
        _this._onToggleSummarize = function (group) {
            var groupProps = _this.props.groupProps;
            var onToggleSummarize = groupProps && groupProps.showAllProps && groupProps.showAllProps.onToggleSummarize;
            if (onToggleSummarize) {
                onToggleSummarize(group);
            }
            else {
                if (group) {
                    group.isShowingAll = !group.isShowingAll;
                }
                _this.forceUpdate();
            }
        };
        _this._getPageSpecification = function (itemIndex) {
            var groups = _this.state.groups;
            var pageGroup = groups && groups[itemIndex];
            return {
                key: pageGroup && pageGroup.key
            };
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeFocusRects"])();
        _this._isSomeGroupExpanded = _this._computeIsSomeGroupExpanded(props.groups);
        _this.state = {
            lastWidth: 0,
            groups: props.groups
        };
        return _this;
    }
    GroupedListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {
        if (this._list.current) {
            this._list.current.scrollToIndex(index, measureItem, scrollToMode);
        }
    };
    GroupedListBase.prototype.getStartItemIndexInView = function () {
        return this._list.current.getStartItemIndexInView() || 0;
    };
    // tslint:disable-next-line function-name
    GroupedListBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        var _a = this.props, groups = _a.groups, selectionMode = _a.selectionMode, compact = _a.compact;
        var shouldForceUpdates = false;
        if (newProps.groups !== groups) {
            this.setState({ groups: newProps.groups });
            shouldForceUpdates = true;
        }
        if (newProps.selectionMode !== selectionMode || newProps.compact !== compact) {
            shouldForceUpdates = true;
        }
        if (shouldForceUpdates) {
            this._forceListUpdates();
        }
    };
    GroupedListBase.prototype.componentDidMount = function () {
        var _a = this.props, groupProps = _a.groupProps, _b = _a.groups, groups = _b === void 0 ? [] : _b;
        if (groupProps && groupProps.isAllGroupsCollapsed) {
            this._setGroupsCollapsedState(groups, groupProps.isAllGroupsCollapsed);
        }
    };
    GroupedListBase.prototype.render = function () {
        var _a = this.props, className = _a.className, usePageCache = _a.usePageCache, onShouldVirtualize = _a.onShouldVirtualize, theme = _a.theme, styles = _a.styles, compact = _a.compact, _b = _a.listProps, listProps = _b === void 0 ? {} : _b;
        var groups = this.state.groups;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            compact: compact
        });
        var version = listProps.version;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, "data-automationid": "GroupedList", "data-is-scrollable": "false", role: "presentation" }, !groups ? (this._renderGroup(undefined, 0)) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_List__WEBPACK_IMPORTED_MODULE_4__["List"], { ref: this._list, role: "presentation", items: groups, onRenderCell: this._renderGroup, getItemCountForPage: this._returnOne, getPageHeight: this._getPageHeight, getPageSpecification: this._getPageSpecification, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, version: version }))));
    };
    GroupedListBase.prototype.forceUpdate = function () {
        _super.prototype.forceUpdate.call(this);
        this._forceListUpdates();
    };
    GroupedListBase.prototype.toggleCollapseAll = function (allCollapsed) {
        var _a = this.state.groups, groups = _a === void 0 ? [] : _a;
        var groupProps = this.props.groupProps;
        var onToggleCollapseAll = groupProps && groupProps.onToggleCollapseAll;
        if (groups.length > 0) {
            if (onToggleCollapseAll) {
                onToggleCollapseAll(allCollapsed);
            }
            this._setGroupsCollapsedState(groups, allCollapsed);
            this._updateIsSomeGroupExpanded();
            this.forceUpdate();
        }
    };
    GroupedListBase.prototype._setGroupsCollapsedState = function (groups, isCollapsed) {
        for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) {
            groups[groupIndex].isCollapsed = isCollapsed;
        }
    };
    GroupedListBase.prototype._returnOne = function () {
        return 1;
    };
    GroupedListBase.prototype._getGroupKey = function (group, index) {
        return 'group-' + (group && group.key ? group.key : String(index));
    };
    GroupedListBase.prototype._getGroupNestingDepth = function () {
        var groups = this.state.groups;
        var level = 0;
        var groupsInLevel = groups;
        while (groupsInLevel && groupsInLevel.length > 0) {
            level++;
            groupsInLevel = groupsInLevel[0].children;
        }
        return level;
    };
    GroupedListBase.prototype._forceListUpdates = function (groups) {
        groups = groups || this.state.groups;
        var groupCount = groups ? groups.length : 1;
        if (this._list.current) {
            this._list.current.forceUpdate();
            for (var i = 0; i < groupCount; i++) {
                var group = this._list.current.refs['group_' + String(i)];
                if (group) {
                    group.forceListUpdate();
                }
            }
        }
        else {
            var group = this.refs['group_' + String(0)];
            if (group) {
                group.forceListUpdate();
            }
        }
    };
    GroupedListBase.prototype._computeIsSomeGroupExpanded = function (groups) {
        var _this = this;
        return !!(groups && groups.some(function (group) { return (group.children ? _this._computeIsSomeGroupExpanded(group.children) : !group.isCollapsed); }));
    };
    GroupedListBase.prototype._updateIsSomeGroupExpanded = function () {
        var groups = this.state.groups;
        var onGroupExpandStateChanged = this.props.onGroupExpandStateChanged;
        var newIsSomeGroupExpanded = this._computeIsSomeGroupExpanded(groups);
        if (this._isSomeGroupExpanded !== newIsSomeGroupExpanded) {
            if (onGroupExpandStateChanged) {
                onGroupExpandStateChanged(newIsSomeGroupExpanded);
            }
            this._isSomeGroupExpanded = newIsSomeGroupExpanded;
        }
    };
    GroupedListBase.defaultProps = {
        selectionMode: _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["SelectionMode"].multiple,
        isHeaderVisible: true,
        groupProps: {},
        compact: false
    };
    return GroupedListBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/GroupedList/GroupedList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedList", function() { return GroupedList; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _GroupedList_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupedList.styles.js");
/* harmony import */ var _GroupedList_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupedList.base.js");



var GroupedList = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_GroupedList_base__WEBPACK_IMPORTED_MODULE_2__["GroupedListBase"], _GroupedList_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'GroupedList'
});


/***/ }),

/***/ "./lib/components/GroupedList/GroupedList.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-GroupedList',
    compact: 'ms-GroupedList--Compact',
    group: 'ms-GroupedList-group',
    link: 'ms-Link',
    listCell: 'ms-List-cell'
};
var beziers = {
    easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'
};
var getStyles = function (props) {
    var _a, _b;
    var theme = props.theme, className = props.className, compact = props.compact;
    var palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.small,
            {
                position: 'relative',
                selectors: (_a = {},
                    _a["." + classNames.listCell] = {
                        minHeight: 38 // be consistent with DetailsList styles
                    },
                    _a)
            },
            compact && [
                classNames.compact,
                {
                    selectors: (_b = {},
                        _b["." + classNames.listCell] = {
                            minHeight: 32 // be consistent with DetailsList styles
                        },
                        _b)
                }
            ],
            className
        ],
        group: [
            classNames.group,
            {
                transition: "background-color " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + beziers.easeInOutSine
            }
        ],
        groupIsDropping: {
            backgroundColor: palette.neutralLight
        }
    };
};


/***/ }),

/***/ "./lib/components/GroupedList/GroupedList.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return CollapseAllVisibility; });
/**
 * {@docCategory GroupedList}
 */
var CollapseAllVisibility;
(function (CollapseAllVisibility) {
    CollapseAllVisibility[CollapseAllVisibility["hidden"] = 0] = "hidden";
    CollapseAllVisibility[CollapseAllVisibility["visible"] = 1] = "visible";
})(CollapseAllVisibility || (CollapseAllVisibility = {}));


/***/ }),

/***/ "./lib/components/GroupedList/GroupedListSection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedListSection", function() { return GroupedListSection; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony import */ var _GroupHeader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/GroupedList/GroupHeader.js");
/* harmony import */ var _GroupShowAll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/GroupedList/GroupShowAll.js");
/* harmony import */ var _GroupFooter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/GroupedList/GroupFooter.js");
/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/List.js");








var DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';
var GroupedListSection = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedListSection, _super);
    function GroupedListSection(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._list = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderGroupHeader = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupHeader__WEBPACK_IMPORTED_MODULE_4__["GroupHeader"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        };
        _this._onRenderGroupShowAll = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupShowAll__WEBPACK_IMPORTED_MODULE_5__["GroupShowAll"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        };
        _this._onRenderGroupFooter = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_GroupFooter__WEBPACK_IMPORTED_MODULE_6__["GroupFooter"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        };
        _this._renderSubGroup = function (subGroup, subGroupIndex) {
            var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, getGroupItemLimit = _a.getGroupItemLimit, groupNestingDepth = _a.groupNestingDepth, groupProps = _a.groupProps, items = _a.items, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selection = _a.selection, selectionMode = _a.selectionMode, viewport = _a.viewport, onRenderGroupHeader = _a.onRenderGroupHeader, onRenderGroupShowAll = _a.onRenderGroupShowAll, onRenderGroupFooter = _a.onRenderGroupFooter, onShouldVirtualize = _a.onShouldVirtualize, group = _a.group, compact = _a.compact;
            var nestingDepth = subGroup.level ? subGroup.level + 1 : groupNestingDepth;
            return !subGroup || subGroup.count > 0 || (groupProps && groupProps.showEmptyGroups) ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](GroupedListSection, { ref: 'subGroup_' + subGroupIndex, key: _this._getGroupKey(subGroup, subGroupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: getGroupItemLimit, group: subGroup, groupIndex: subGroupIndex, groupNestingDepth: nestingDepth, groupProps: groupProps, headerProps: headerProps, items: items, listProps: listProps, onRenderCell: onRenderCell, selection: selection, selectionMode: selectionMode, showAllProps: showAllProps, viewport: viewport, onRenderGroupHeader: onRenderGroupHeader, onRenderGroupShowAll: onRenderGroupShowAll, onRenderGroupFooter: onRenderGroupFooter, onShouldVirtualize: onShouldVirtualize, groups: group.children, compact: compact })) : null;
        };
        /**
         * collect all the data we need to enable drag/drop for a group
         */
        _this._getGroupDragDropOptions = function () {
            var _a = _this.props, group = _a.group, groupIndex = _a.groupIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;
            var options = {
                eventMap: eventsToRegister,
                selectionIndex: -1,
                context: { data: group, index: groupIndex, isGroup: true },
                canDrag: function () { return false; },
                canDrop: dragDropEvents.canDrop,
                updateDropState: _this._updateDroppingState
            };
            return options;
        };
        /**
         * update groupIsDropping state based on the input value, which is used to change style during drag and drop
         *
         * @param newValue - new isDropping state value
         * @param event - the event trigger dropping state change which can be dragenter, dragleave etc
         */
        _this._updateDroppingState = function (newIsDropping, event) {
            var isDropping = _this.state.isDropping;
            var dragDropEvents = _this.props.dragDropEvents;
            if (!isDropping) {
                if (dragDropEvents && dragDropEvents.onDragLeave) {
                    dragDropEvents.onDragLeave(event, undefined);
                }
            }
            else {
                if (dragDropEvents && dragDropEvents.onDragEnter) {
                    dragDropEvents.onDragEnter(event, undefined);
                }
            }
            if (isDropping !== newIsDropping) {
                _this.setState({ isDropping: newIsDropping });
            }
        };
        var selection = props.selection, group = props.group;
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('GroupedListSection');
        _this.state = {
            isDropping: false,
            isSelected: selection && group ? selection.isRangeSelected(group.startIndex, group.count) : false
        };
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["EventGroup"](_this);
        return _this;
    }
    GroupedListSection.prototype.componentDidMount = function () {
        var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection;
        if (dragDropHelper && this._root.current) {
            this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());
        }
        if (selection) {
            this._events.on(selection, _utilities_selection_index__WEBPACK_IMPORTED_MODULE_3__["SELECTION_CHANGE"], this._onSelectionChange);
        }
    };
    GroupedListSection.prototype.componentWillUnmount = function () {
        this._events.dispose();
        if (this._dragDropSubscription) {
            this._dragDropSubscription.dispose();
        }
    };
    GroupedListSection.prototype.componentDidUpdate = function (previousProps) {
        if (this.props.group !== previousProps.group ||
            this.props.groupIndex !== previousProps.groupIndex ||
            this.props.dragDropHelper !== previousProps.dragDropHelper) {
            if (this._dragDropSubscription) {
                this._dragDropSubscription.dispose();
                delete this._dragDropSubscription;
            }
            if (this.props.dragDropHelper && this._root.current) {
                this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());
            }
        }
    };
    GroupedListSection.prototype.render = function () {
        var _a = this.props, getGroupItemLimit = _a.getGroupItemLimit, group = _a.group, groupIndex = _a.groupIndex, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, viewport = _a.viewport, selectionMode = _a.selectionMode, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? this._onRenderGroupHeader : _b, _c = _a.onRenderGroupShowAll, onRenderGroupShowAll = _c === void 0 ? this._onRenderGroupShowAll : _c, _d = _a.onRenderGroupFooter, onRenderGroupFooter = _d === void 0 ? this._onRenderGroupFooter : _d, onShouldVirtualize = _a.onShouldVirtualize, groupedListClassNames = _a.groupedListClassNames, groups = _a.groups, compact = _a.compact, _e = _a.listProps, listProps = _e === void 0 ? {} : _e;
        var isSelected = this.state.isSelected;
        var renderCount = group && getGroupItemLimit ? getGroupItemLimit(group) : Infinity;
        var isShowAllVisible = group && !group.children && !group.isCollapsed && !group.isShowingAll && (group.count > renderCount || group.hasMoreData);
        var hasNestedGroups = group && group.children && group.children.length > 0;
        var version = listProps.version;
        var dividerProps = {
            group: group,
            groupIndex: groupIndex,
            groupLevel: group ? group.level : 0,
            isSelected: isSelected,
            selected: isSelected,
            viewport: viewport,
            selectionMode: selectionMode,
            groups: groups,
            compact: compact
        };
        var ariaControlsProps = {
            groupedListId: this._id
        };
        var groupHeaderProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, headerProps, dividerProps, ariaControlsProps);
        var groupShowAllProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, showAllProps, dividerProps);
        var groupFooterProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, footerProps, dividerProps);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._root, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(groupedListClassNames && groupedListClassNames.group, this._getDroppingClassName()), role: "presentation" },
            onRenderGroupHeader(groupHeaderProps, this._onRenderGroupHeader),
            group && group.isCollapsed ? null : hasNestedGroups ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_List__WEBPACK_IMPORTED_MODULE_7__["List"], { role: "presentation", ref: this._list, items: group.children, onRenderCell: this._renderSubGroup, getItemCountForPage: this._returnOne, onShouldVirtualize: onShouldVirtualize, version: version, id: this._id })) : (this._onRenderGroup(renderCount)),
            group && group.isCollapsed ? null : isShowAllVisible && onRenderGroupShowAll(groupShowAllProps, this._onRenderGroupShowAll),
            onRenderGroupFooter(groupFooterProps, this._onRenderGroupFooter)));
    };
    GroupedListSection.prototype.forceUpdate = function () {
        _super.prototype.forceUpdate.call(this);
        this.forceListUpdate();
    };
    GroupedListSection.prototype.forceListUpdate = function () {
        var group = this.props.group;
        if (this._list.current) {
            this._list.current.forceUpdate();
            if (group && group.children && group.children.length > 0) {
                var subGroupCount = group.children.length;
                for (var i = 0; i < subGroupCount; i++) {
                    var subGroup = this._list.current.refs['subGroup_' + String(i)];
                    if (subGroup) {
                        subGroup.forceListUpdate();
                    }
                }
            }
        }
        else {
            var subGroup = this.refs['subGroup_' + String(0)];
            if (subGroup) {
                subGroup.forceListUpdate();
            }
        }
    };
    GroupedListSection.prototype._onSelectionChange = function () {
        var _a = this.props, group = _a.group, selection = _a.selection;
        var isSelected = selection.isRangeSelected(group.startIndex, group.count);
        if (isSelected !== this.state.isSelected) {
            this.setState({ isSelected: isSelected });
        }
    };
    GroupedListSection.prototype._onRenderGroupCell = function (onRenderCell, groupNestingDepth) {
        return function (item, itemIndex) {
            return onRenderCell(groupNestingDepth, item, itemIndex);
        };
    };
    GroupedListSection.prototype._onRenderGroup = function (renderCount) {
        var _a = this.props, group = _a.group, items = _a.items, onRenderCell = _a.onRenderCell, listProps = _a.listProps, groupNestingDepth = _a.groupNestingDepth, onShouldVirtualize = _a.onShouldVirtualize;
        var count = group && !group.isShowingAll ? group.count : items.length;
        var startIndex = group ? group.startIndex : 0;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_List__WEBPACK_IMPORTED_MODULE_7__["List"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ role: "grid", items: items, onRenderCell: this._onRenderGroupCell(onRenderCell, groupNestingDepth), ref: this._list, renderCount: Math.min(count, renderCount), startIndex: startIndex, onShouldVirtualize: onShouldVirtualize, id: this._id }, listProps)));
    };
    GroupedListSection.prototype._returnOne = function () {
        return 1;
    };
    GroupedListSection.prototype._getGroupKey = function (group, index) {
        return 'group-' + (group && group.key ? group.key : String(group.level) + String(index));
    };
    /**
     * get the correct css class to reflect the dropping state for a given group
     *
     * If the group is the current drop target, return the default dropping class name
     * Otherwise, return '';
     *
     */
    GroupedListSection.prototype._getDroppingClassName = function () {
        var isDropping = this.state.isDropping;
        var _a = this.props, group = _a.group, groupedListClassNames = _a.groupedListClassNames;
        isDropping = !!(group && isDropping);
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(isDropping && DEFAULT_DROPPING_CSS_CLASS, isDropping && groupedListClassNames && groupedListClassNames.groupIsDropping);
    };
    return GroupedListSection;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/GroupedList/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _GroupedList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/GroupedList/GroupedList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedList", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_0__["GroupedList"]; });

/* harmony import */ var _GroupedList_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/GroupedList/GroupedList.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedListBase", function() { return _GroupedList_base__WEBPACK_IMPORTED_MODULE_1__["GroupedListBase"]; });

/* harmony import */ var _GroupedList_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/GroupedList/GroupedList.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _GroupedList_types__WEBPACK_IMPORTED_MODULE_2__["CollapseAllVisibility"]; });

/* harmony import */ var _GroupHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/GroupedList/GroupHeader.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupHeader", function() { return _GroupHeader__WEBPACK_IMPORTED_MODULE_3__["GroupHeader"]; });

/* harmony import */ var _GroupFooter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/GroupedList/GroupFooter.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupFooter", function() { return _GroupFooter__WEBPACK_IMPORTED_MODULE_4__["GroupFooter"]; });

/* harmony import */ var _GroupShowAll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/GroupedList/GroupShowAll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupShowAll", function() { return _GroupShowAll__WEBPACK_IMPORTED_MODULE_5__["GroupShowAll"]; });

/* harmony import */ var _GroupSpacer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/GroupedList/GroupSpacer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupSpacer", function() { return _GroupSpacer__WEBPACK_IMPORTED_MODULE_6__["GroupSpacer"]; });










/***/ }),

/***/ "./lib/components/HoverCard/CardCallout/CardCallout.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardCallout", function() { return CardCallout; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/common/DirectionalHint.js");






var CardCallout = function (props) {
    var _a = props.gapSpace, gapSpace = _a === void 0 ? 0 : _a, _b = props.directionalHint, directionalHint = _b === void 0 ? _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomLeftEdge : _b, directionalHintFixed = props.directionalHintFixed, targetElement = props.targetElement, firstFocus = props.firstFocus, trapFocus = props.trapFocus, onLeave = props.onLeave, className = props.className, finalHeight = props.finalHeight, content = props.content;
    var calloutProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]), { className: className, target: targetElement, isBeakVisible: false, directionalHint: directionalHint, directionalHintFixed: directionalHintFixed, finalHeight: finalHeight, minPagePadding: 24, onDismiss: onLeave, gapSpace: gapSpace });
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, trapFocus ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_3__["FocusTrapCallout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calloutProps, { focusTrapProps: {
            forceFocusInsideTrap: false,
            isClickableOutsideFocusTrap: true,
            disableFirstFocus: !firstFocus
        } }), content)) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_3__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calloutProps), content))));
};


/***/ }),

/***/ "./lib/components/HoverCard/ExpandingCard.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardBase", function() { return ExpandingCardBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.types.js");
/* harmony import */ var _CardCallout_CardCallout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/HoverCard/CardCallout/CardCallout.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ExpandingCardBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExpandingCardBase, _super);
    function ExpandingCardBase(props) {
        var _this = _super.call(this, props) || this;
        _this._expandedElem = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape) {
                _this.props.onLeave && _this.props.onLeave(ev);
            }
        };
        _this._onRenderCompactCard = function () {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.compactCard }, _this.props.onRenderCompactCard(_this.props.renderData));
        };
        _this._onRenderExpandedCard = function () {
            // firstFrameRendered helps in initially setting height of expanded card to 1px, even if
            // mode prop is set to ExpandingCardMode.expanded on first render. This is to make sure transition animation takes place.
            !_this.state.firstFrameRendered &&
                _this._async.requestAnimationFrame(function () {
                    _this.setState({
                        firstFrameRendered: true
                    });
                });
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.expandedCard, ref: _this._expandedElem },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.expandedCardScroll }, _this.props.onRenderExpandedCard && _this.props.onRenderExpandedCard(_this.props.renderData))));
        };
        _this._checkNeedsScroll = function () {
            var expandedCardHeight = _this.props.expandedCardHeight;
            _this._async.requestAnimationFrame(function () {
                if (_this._expandedElem.current && _this._expandedElem.current.scrollHeight >= expandedCardHeight) {
                    _this.setState({
                        needsScroll: true
                    });
                }
            });
        };
        _this.state = {
            firstFrameRendered: false,
            needsScroll: false
        };
        return _this;
    }
    ExpandingCardBase.prototype.componentDidMount = function () {
        this._checkNeedsScroll();
    };
    ExpandingCardBase.prototype.componentWillUnmount = function () {
        this._async.dispose();
    };
    ExpandingCardBase.prototype.render = function () {
        var _a = this.props, styles = _a.styles, compactCardHeight = _a.compactCardHeight, expandedCardHeight = _a.expandedCardHeight, theme = _a.theme, mode = _a.mode, className = _a.className;
        var _b = this.state, needsScroll = _b.needsScroll, firstFrameRendered = _b.firstFrameRendered;
        var finalHeight = compactCardHeight + expandedCardHeight;
        this._classNames = getClassNames(styles, {
            theme: theme,
            compactCardHeight: compactCardHeight,
            className: className,
            expandedCardHeight: expandedCardHeight,
            needsScroll: needsScroll,
            expandedCardFirstFrameRendered: mode === _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_3__["ExpandingCardMode"].expanded && firstFrameRendered
        });
        var content = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { onMouseEnter: this.props.onEnter, onMouseLeave: this.props.onLeave, onKeyDown: this._onKeyDown },
            this._onRenderCompactCard(),
            this._onRenderExpandedCard()));
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CardCallout_CardCallout__WEBPACK_IMPORTED_MODULE_4__["CardCallout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { content: content, finalHeight: finalHeight, className: this._classNames.root }));
    };
    ExpandingCardBase.defaultProps = {
        compactCardHeight: 156,
        expandedCardHeight: 384,
        directionalHintFixed: true
    };
    return ExpandingCardBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/HoverCard/ExpandingCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandingCard", function() { return ExpandingCard; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ExpandingCard_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.styles.js");
/* harmony import */ var _ExpandingCard_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.base.js");



var ExpandingCard = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ExpandingCard_base__WEBPACK_IMPORTED_MODULE_2__["ExpandingCardBase"], _ExpandingCard_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'ExpandingCard'
});


/***/ }),

/***/ "./lib/components/HoverCard/ExpandingCard.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ExpandingCard-root',
    compactCard: 'ms-ExpandingCard-compactCard',
    expandedCard: 'ms-ExpandingCard-expandedCard',
    expandedCardScroll: 'ms-ExpandingCard-expandedCardScrollRegion'
};
function getStyles(props) {
    var _a;
    var theme = props.theme, needsScroll = props.needsScroll, expandedCardFirstFrameRendered = props.expandedCardFirstFrameRendered, compactCardHeight = props.compactCardHeight, expandedCardHeight = props.expandedCardHeight, className = props.className;
    var palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                width: 320,
                pointerEvents: 'none',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText'
                    },
                    _a)
            },
            className
        ],
        compactCard: [
            classNames.compactCard,
            {
                pointerEvents: 'auto',
                position: 'relative',
                height: compactCardHeight
            }
        ],
        expandedCard: [
            classNames.expandedCard,
            {
                height: 1,
                overflowY: 'hidden',
                pointerEvents: 'auto',
                transition: 'height 0.467s cubic-bezier(0.5, 0, 0, 1)',
                selectors: {
                    ':before': {
                        content: '""',
                        position: 'relative',
                        display: 'block',
                        top: 0,
                        left: 24,
                        width: 272,
                        height: 1,
                        backgroundColor: palette.neutralLighter
                    }
                }
            },
            expandedCardFirstFrameRendered && {
                height: expandedCardHeight
            }
        ],
        expandedCardScroll: [
            classNames.expandedCardScroll,
            needsScroll && {
                height: '100%',
                boxSizing: 'border-box',
                overflowY: 'auto'
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/HoverCard/ExpandingCard.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardMode", function() { return ExpandingCardMode; });
/**
 * {@docCategory HoverCard}
 */
var ExpandingCardMode;
(function (ExpandingCardMode) {
    /**
     * To have top compact card only
     */
    ExpandingCardMode[ExpandingCardMode["compact"] = 0] = "compact";
    /**
     * To have both top compact and bottom expanded card
     */
    ExpandingCardMode[ExpandingCardMode["expanded"] = 1] = "expanded";
})(ExpandingCardMode || (ExpandingCardMode = {}));


/***/ }),

/***/ "./lib/components/HoverCard/HoverCard.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverCardBase", function() { return HoverCardBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/HoverCard/HoverCard.types.js");
/* harmony import */ var _ExpandingCard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.js");
/* harmony import */ var _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.types.js");
/* harmony import */ var _PlainCard_PlainCard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/HoverCard/PlainCard/PlainCard.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var HoverCardBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](HoverCardBase, _super);
    // Constructor
    function HoverCardBase(props) {
        var _this = _super.call(this, props) || this;
        // The wrapping div that gets the hover events
        _this._hoverCard = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.dismiss = function (withTimeOut) {
            _this._async.clearTimeout(_this._openTimerId);
            _this._async.clearTimeout(_this._dismissTimerId);
            if (!withTimeOut) {
                _this._setDismissedState();
            }
            else {
                _this._dismissTimerId = _this._async.setTimeout(function () {
                    _this._setDismissedState();
                }, _this.props.cardDismissDelay);
            }
        };
        // Show HoverCard
        _this._cardOpen = function (ev) {
            if (_this._shouldBlockHoverCard() || (ev.type === 'keydown' && !(ev.which === _this.props.openHotKey))) {
                return;
            }
            _this._async.clearTimeout(_this._dismissTimerId);
            if (ev.type === 'mouseenter') {
                _this._currentMouseTarget = ev.currentTarget;
            }
            _this._executeCardOpen(ev);
        };
        _this._executeCardOpen = function (ev) {
            _this._async.clearTimeout(_this._openTimerId);
            _this._openTimerId = _this._async.setTimeout(function () {
                _this.setState(function (prevState) {
                    if (!prevState.isHoverCardVisible) {
                        return {
                            isHoverCardVisible: true,
                            mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].compact,
                            openMode: ev.type === 'keydown' ? _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["OpenCardMode"].hotKey : _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["OpenCardMode"].hover
                        };
                    }
                    return prevState;
                });
            }, _this.props.cardOpenDelay);
        };
        /**
         * Hide HoverCard
         * How we dismiss the card depends on where the callback is coming from.
         * This is provided by the `isNativeEvent` argument.
         *  true: Event is coming from event listeners set up in componentDidMount.
         *  false: Event is coming from the `onLeave` prop from the HoverCard component.
         */
        _this._cardDismiss = function (isNativeEvent, ev) {
            if (isNativeEvent) {
                // We expect these to be MouseEvents, If not, return.
                if (!(ev instanceof MouseEvent)) {
                    return;
                }
                if (ev.type === 'keydown' && ev.which !== _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape) {
                    return;
                }
                // Dismiss if not sticky and currentTarget is the same element that mouse last entered
                if (!_this.props.sticky && (_this._currentMouseTarget === ev.currentTarget || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape)) {
                    _this.dismiss(true);
                }
            }
            else {
                // If this is a mouseleave event and the component is sticky, do not dismiss.
                if (_this.props.sticky && !(ev instanceof MouseEvent) && ev.nativeEvent instanceof MouseEvent && ev.type === 'mouseleave') {
                    return;
                }
                _this.dismiss(true);
            }
        };
        _this._setDismissedState = function () {
            _this.setState({
                isHoverCardVisible: false,
                mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].compact,
                openMode: _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["OpenCardMode"].hover
            });
        };
        _this._instantOpenAsExpanded = function (ev) {
            _this._async.clearTimeout(_this._dismissTimerId);
            _this.setState(function (prevState) {
                if (!prevState.isHoverCardVisible) {
                    return {
                        isHoverCardVisible: true,
                        mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].expanded
                    };
                }
                return prevState;
            });
        };
        _this._setEventListeners = function () {
            var _a = _this.props, trapFocus = _a.trapFocus, instantOpenOnClick = _a.instantOpenOnClick, eventListenerTarget = _a.eventListenerTarget;
            var target = eventListenerTarget ? _this._getTargetElement(eventListenerTarget) : _this._getTargetElement(_this.props.target);
            var nativeEventDismiss = _this._nativeDismissEvent;
            // target can be undefined if ref isn't available, only assign
            // events when defined to avoid throwing exception.
            if (target) {
                _this._events.on(target, 'mouseenter', _this._cardOpen);
                _this._events.on(target, 'mouseleave', nativeEventDismiss);
                if (trapFocus) {
                    _this._events.on(target, 'keydown', _this._cardOpen);
                }
                else {
                    _this._events.on(target, 'focus', _this._cardOpen);
                    _this._events.on(target, 'blur', nativeEventDismiss);
                }
                if (instantOpenOnClick) {
                    _this._events.on(target, 'click', _this._instantOpenAsExpanded);
                }
                else {
                    _this._events.on(target, 'mousedown', nativeEventDismiss);
                    _this._events.on(target, 'keydown', nativeEventDismiss);
                }
            }
        };
        _this._nativeDismissEvent = _this._cardDismiss.bind(_this, true);
        _this._childDismissEvent = _this._cardDismiss.bind(_this, false);
        _this.state = {
            isHoverCardVisible: false,
            mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].compact,
            openMode: _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["OpenCardMode"].hover
        };
        return _this;
    }
    HoverCardBase.prototype.componentDidMount = function () {
        this._setEventListeners();
    };
    HoverCardBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        var _this = this;
        if (prevProps.target !== this.props.target) {
            this._events.off();
            this._setEventListeners();
        }
        if (prevState.isHoverCardVisible !== this.state.isHoverCardVisible) {
            if (this.state.isHoverCardVisible) {
                this._async.setTimeout(function () {
                    _this.setState({
                        mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].expanded
                    }, function () {
                        _this.props.onCardExpand && _this.props.onCardExpand();
                    });
                }, this.props.expandedCardOpenDelay);
                this.props.onCardVisible && this.props.onCardVisible();
            }
            else {
                this.setState({
                    mode: _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"].compact
                });
                this.props.onCardHide && this.props.onCardHide();
            }
        }
    };
    // Render
    HoverCardBase.prototype.render = function () {
        var _a = this.props, expandingCardProps = _a.expandingCardProps, children = _a.children, id = _a.id, _b = _a.setAriaDescribedBy, setAriaDescribedBy = _b === void 0 ? true : _b, customStyles = _a.styles, theme = _a.theme, className = _a.className, type = _a.type, plainCardProps = _a.plainCardProps, trapFocus = _a.trapFocus, setInitialFocus = _a.setInitialFocus;
        var _c = this.state, isHoverCardVisible = _c.isHoverCardVisible, mode = _c.mode, openMode = _c.openMode;
        var hoverCardId = id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('hoverCard');
        this._classNames = getClassNames(customStyles, {
            theme: theme,
            className: className
        });
        // Common props for both card types.
        var commonCardProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]), { id: hoverCardId, trapFocus: !!trapFocus, firstFocus: setInitialFocus || openMode === _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["OpenCardMode"].hotKey, targetElement: this._getTargetElement(this.props.target), onEnter: this._cardOpen, onLeave: this._childDismissEvent });
        var finalExpandedCardProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, expandingCardProps, commonCardProps, { mode: mode });
        var finalPlainCardProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, plainCardProps, commonCardProps);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.host, ref: this._hoverCard, "aria-describedby": setAriaDescribedBy && isHoverCardVisible ? hoverCardId : undefined, "data-is-focusable": !Boolean(this.props.target) },
            children,
            isHoverCardVisible &&
                (type === _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["HoverCardType"].expanding ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ExpandingCard__WEBPACK_IMPORTED_MODULE_4__["ExpandingCard"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, finalExpandedCardProps)) : react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PlainCard_PlainCard__WEBPACK_IMPORTED_MODULE_6__["PlainCard"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, finalPlainCardProps)))));
    };
    HoverCardBase.prototype._getTargetElement = function (target) {
        switch (typeof target) {
            case 'string':
                return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])().querySelector(target);
            case 'object':
                return target;
            default:
                return this._hoverCard.current || undefined;
        }
    };
    HoverCardBase.prototype._shouldBlockHoverCard = function () {
        return !!(this.props.shouldBlockHoverCard && this.props.shouldBlockHoverCard());
    };
    HoverCardBase.defaultProps = {
        cardOpenDelay: 500,
        cardDismissDelay: 100,
        expandedCardOpenDelay: 1500,
        instantOpenOnClick: false,
        setInitialFocus: false,
        openHotKey: _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].c,
        type: _HoverCard_types__WEBPACK_IMPORTED_MODULE_3__["HoverCardType"].expanding
    };
    return HoverCardBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/HoverCard/HoverCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverCard", function() { return HoverCard; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _HoverCard_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/HoverCard/HoverCard.styles.js");
/* harmony import */ var _HoverCard_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/HoverCard/HoverCard.base.js");



var HoverCard = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_HoverCard_base__WEBPACK_IMPORTED_MODULE_2__["HoverCardBase"], _HoverCard_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'HoverCard'
});


/***/ }),

/***/ "./lib/components/HoverCard/HoverCard.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    host: 'ms-HoverCard-host'
};
function getStyles(props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        host: [classNames.host, className]
    };
}


/***/ }),

/***/ "./lib/components/HoverCard/HoverCard.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OpenCardMode", function() { return OpenCardMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverCardType", function() { return HoverCardType; });
/**
 * {@docCategory HoverCard}
 */
var OpenCardMode;
(function (OpenCardMode) {
    /**
     * Open card by hover
     */
    OpenCardMode[OpenCardMode["hover"] = 0] = "hover";
    /**
     * Open card by hot key
     */
    OpenCardMode[OpenCardMode["hotKey"] = 1] = "hotKey";
})(OpenCardMode || (OpenCardMode = {}));
/**
 * {@docCategory HoverCard}
 */
var HoverCardType;
(function (HoverCardType) {
    /**
     * Plain card consisting of one part responsive to the size of content.
     */
    HoverCardType["plain"] = "PlainCard";
    /**
     * File card consisting of two parts: compact and expanded. Has some default sizes if not specified.
     */
    HoverCardType["expanding"] = "ExpandingCard";
})(HoverCardType || (HoverCardType = {}));


/***/ }),

/***/ "./lib/components/HoverCard/PlainCard/PlainCard.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlainCardBase", function() { return PlainCardBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _CardCallout_CardCallout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/HoverCard/CardCallout/CardCallout.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var PlainCardBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PlainCardBase, _super);
    function PlainCardBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape) {
                _this.props.onLeave && _this.props.onLeave(ev);
            }
        };
        return _this;
    }
    PlainCardBase.prototype.render = function () {
        var _a = this.props, styles = _a.styles, theme = _a.theme, className = _a.className;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        var content = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { onMouseEnter: this.props.onEnter, onMouseLeave: this.props.onLeave, onKeyDown: this._onKeyDown }, this.props.onRenderPlainCard(this.props.renderData)));
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_CardCallout_CardCallout__WEBPACK_IMPORTED_MODULE_3__["CardCallout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { content: content, className: this._classNames.root }));
    };
    return PlainCardBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/HoverCard/PlainCard/PlainCard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlainCard", function() { return PlainCard; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _PlainCard_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/HoverCard/PlainCard/PlainCard.styles.js");
/* harmony import */ var _PlainCard_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/HoverCard/PlainCard/PlainCard.base.js");



var PlainCard = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_PlainCard_base__WEBPACK_IMPORTED_MODULE_2__["PlainCardBase"], _PlainCard_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'PlainCard'
});


/***/ }),

/***/ "./lib/components/HoverCard/PlainCard/PlainCard.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-PlainCard-root'
};
function getStyles(props) {
    var _a;
    var theme = props.theme, className = props.className;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                pointerEvents: 'auto',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText'
                    },
                    _a)
            },
            className
        ]
    };
}


/***/ }),

/***/ "./lib/components/HoverCard/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _HoverCard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/HoverCard/HoverCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCard", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_0__["HoverCard"]; });

/* harmony import */ var _HoverCard_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/HoverCard/HoverCard.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardBase", function() { return _HoverCard_base__WEBPACK_IMPORTED_MODULE_1__["HoverCardBase"]; });

/* harmony import */ var _HoverCard_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/HoverCard/HoverCard.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OpenCardMode", function() { return _HoverCard_types__WEBPACK_IMPORTED_MODULE_2__["OpenCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardType", function() { return _HoverCard_types__WEBPACK_IMPORTED_MODULE_2__["HoverCardType"]; });

/* harmony import */ var _ExpandingCard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCard", function() { return _ExpandingCard__WEBPACK_IMPORTED_MODULE_3__["ExpandingCard"]; });

/* harmony import */ var _ExpandingCard_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardBase", function() { return _ExpandingCard_base__WEBPACK_IMPORTED_MODULE_4__["ExpandingCardBase"]; });

/* harmony import */ var _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/HoverCard/ExpandingCard.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardMode", function() { return _ExpandingCard_types__WEBPACK_IMPORTED_MODULE_5__["ExpandingCardMode"]; });

/* harmony import */ var _PlainCard_PlainCard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/HoverCard/PlainCard/PlainCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCard", function() { return _PlainCard_PlainCard__WEBPACK_IMPORTED_MODULE_6__["PlainCard"]; });

/* harmony import */ var _PlainCard_PlainCard_base__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/HoverCard/PlainCard/PlainCard.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCardBase", function() { return _PlainCard_PlainCard_base__WEBPACK_IMPORTED_MODULE_7__["PlainCardBase"]; });

/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_8__["DirectionalHint"]; });












/***/ }),

/***/ "./lib/components/Icon/FontIcon.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIconContent", function() { return getIconContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FontIcon", function() { return FontIcon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFontIcon", function() { return getFontIcon; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Icon/Icon.styles.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Styling.js");





var getIconContent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (iconName) {
    var iconDefinition = Object(_Styling__WEBPACK_IMPORTED_MODULE_4__["getIcon"])(iconName) || {
        subset: {
            className: undefined
        },
        code: undefined
    };
    return {
        children: iconDefinition.code,
        iconClassName: iconDefinition.subset.className
    };
});
/**
 * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.
 * To style the icon, use `className` or reference `ms-Icon` in CSS.
 * {@docCategory Icon}
 */
var FontIcon = function (props) {
    var iconName = props.iconName, className = props.className;
    var _a = getIconContent(iconName), iconClassName = _a.iconClassName, children = _a.children;
    var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["htmlElementProperties"]);
    var containerProps = props['aria-label']
        ? {}
        : {
            role: 'presentation',
            'aria-hidden': true
        };
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("i", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "data-icon-name": iconName }, containerProps, nativeProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(_Icon_styles__WEBPACK_IMPORTED_MODULE_2__["MS_ICON"], _Icon_styles__WEBPACK_IMPORTED_MODULE_2__["classNames"].root, iconClassName, !iconName && _Icon_styles__WEBPACK_IMPORTED_MODULE_2__["classNames"].placeholder, className) }), children));
};
/**
 * Memoized helper for rendering a FontIcon.
 * @param iconName - The name of the icon to use from the icon font.
 * @param className - Class name for styling the icon.
 * @param ariaLabel - Label for the icon for the benefit of screen readers.
 * {@docCategory Icon}
 */
var getFontIcon = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (iconName, className, ariaLabel) {
    return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });
});


/***/ }),

/***/ "./lib/components/Icon/Icon.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconBase", function() { return IconBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Icon_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Icon/Icon.types.js");
/* harmony import */ var _Image_Image__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Image/Image.js");
/* harmony import */ var _Image_Image_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Image/Image.types.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FontIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Icon/FontIcon.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["classNamesFunction"])({
    disableCaching: true
});
var IconBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IconBase, _super);
    function IconBase(props) {
        var _this = _super.call(this, props) || this;
        _this.onImageLoadingStateChange = function (state) {
            if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {
                _this.props.imageProps.onLoadingStateChange(state);
            }
            if (state === _Image_Image_types__WEBPACK_IMPORTED_MODULE_4__["ImageLoadState"].error) {
                _this.setState({ imageLoadError: true });
            }
        };
        _this.state = {
            imageLoadError: false
        };
        return _this;
    }
    IconBase.prototype.render = function () {
        var _a = this.props, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;
        var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;
        var isImage = this.props.iconType === _Icon_types__WEBPACK_IMPORTED_MODULE_2__["IconType"].image || this.props.iconType === _Icon_types__WEBPACK_IMPORTED_MODULE_2__["IconType"].Image || !!this.props.imageProps;
        var _b = Object(_FontIcon__WEBPACK_IMPORTED_MODULE_6__["getIconContent"])(iconName), iconClassName = _b.iconClassName, children = _b.children;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            iconClassName: iconClassName,
            isImage: isImage,
            isPlaceholder: isPlaceholder
        });
        var RootType = isImage ? 'div' : 'i';
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_5__["htmlElementProperties"], ['aria-label']);
        var imageLoadError = this.state.imageLoadError;
        var imageProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props.imageProps, { onLoadingStateChange: this.onImageLoadingStateChange });
        var ImageType = (imageLoadError && imageErrorAs) || _Image_Image__WEBPACK_IMPORTED_MODULE_3__["Image"];
        var ariaLabel = this.props.ariaLabel || this.props['aria-label'];
        var containerProps = ariaLabel
            ? {
                'aria-label': ariaLabel
            }
            : {
                'aria-hidden': this.props['aria-labelledby'] || imageProps['aria-labelledby'] ? false : true
            };
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RootType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "data-icon-name": iconName }, containerProps, nativeProps, { className: classNames.root }), isImage ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ImageType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, imageProps)) : children));
    };
    return IconBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Icon/Icon.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return Icon; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Icon/Icon.base.js");
/* harmony import */ var _Icon_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Icon/Icon.styles.js");



/**
 * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`
 * or `ImageIcon` instead, especially in scenarios where rendering performance is important.
 * {@docCategory Icon}
 */
var Icon = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Icon_base__WEBPACK_IMPORTED_MODULE_1__["IconBase"], _Icon_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Icon'
}, true);


/***/ }),

/***/ "./lib/components/Icon/Icon.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return classNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MS_ICON", function() { return MS_ICON; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

/** Class names used in themeable and non-themeable Icon components */
var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyleSets"])({
    root: {
        display: 'inline-block'
    },
    placeholder: [
        'ms-Icon-placeHolder',
        {
            width: '1em'
        }
    ],
    image: [
        'ms-Icon-imageContainer',
        {
            overflow: 'hidden'
        }
    ]
});
/** Class name used only in non-themeable Icon components */
var MS_ICON = 'ms-Icon';
var getStyles = function (props) {
    var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;
    return {
        root: [
            isPlaceholder && classNames.placeholder,
            classNames.root,
            isImage && classNames.image,
            iconClassName,
            className,
            styles && styles.root,
            styles && styles.imageContainer
        ]
    };
};


/***/ }),

/***/ "./lib/components/Icon/Icon.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconType", function() { return IconType; });
/**
 * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`
 * {@docCategory Icon}
 */
var IconType;
(function (IconType) {
    /**
     * Render using the fabric icon font.
     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`
     */
    IconType[IconType["default"] = 0] = "default";
    /**
     * Render using an image, where imageProps would be used.
     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`
     */
    IconType[IconType["image"] = 1] = "image";
    /**
     * Deprecated, use `default`.
     * @deprecated Use `default`.
     */
    IconType[IconType["Default"] = 100000] = "Default";
    /**
     * Deprecated, use `image`.
     * @deprecated Use `image`.
     */
    IconType[IconType["Image"] = 100001] = "Image";
})(IconType || (IconType = {}));


/***/ }),

/***/ "./lib/components/Icon/ImageIcon.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageIcon", function() { return ImageIcon; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Image_Image__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Image/Image.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Icon/Icon.styles.js");





/**
 * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.
 * To style the icon, use `className` or reference `ms-Icon` in CSS.
 * {@docCategory Icon}
 */
var ImageIcon = function (props) {
    var className = props.className, imageProps = props.imageProps;
    var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["htmlElementProperties"]);
    var containerProps = props['aria-label']
        ? {}
        : {
            role: 'presentation',
            'aria-hidden': imageProps.alt || imageProps['aria-labelledby'] ? false : true
        };
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, containerProps, nativeProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["css"])(_Icon_styles__WEBPACK_IMPORTED_MODULE_4__["MS_ICON"], _Icon_styles__WEBPACK_IMPORTED_MODULE_4__["classNames"].root, _Icon_styles__WEBPACK_IMPORTED_MODULE_4__["classNames"].image, className) }),
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image_Image__WEBPACK_IMPORTED_MODULE_2__["Image"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, imageProps))));
};


/***/ }),

/***/ "./lib/components/Icon/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Icon/Icon.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return _Icon__WEBPACK_IMPORTED_MODULE_0__["Icon"]; });

/* harmony import */ var _Icon_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Icon/Icon.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconBase", function() { return _Icon_base__WEBPACK_IMPORTED_MODULE_1__["IconBase"]; });

/* harmony import */ var _Icon_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Icon/Icon.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconType", function() { return _Icon_types__WEBPACK_IMPORTED_MODULE_2__["IconType"]; });

/* harmony import */ var _FontIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Icon/FontIcon.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconContent", function() { return _FontIcon__WEBPACK_IMPORTED_MODULE_3__["getIconContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontIcon", function() { return _FontIcon__WEBPACK_IMPORTED_MODULE_3__["FontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFontIcon", function() { return _FontIcon__WEBPACK_IMPORTED_MODULE_3__["getFontIcon"]; });

/* harmony import */ var _ImageIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Icon/ImageIcon.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageIcon", function() { return _ImageIcon__WEBPACK_IMPORTED_MODULE_4__["ImageIcon"]; });








/***/ }),

/***/ "./lib/components/Image/Image.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageBase", function() { return ImageBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Image_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Image/Image.types.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var KEY_PREFIX = 'fabricImage';
var ImageBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ImageBase, _super);
    function ImageBase(props) {
        var _this = _super.call(this, props) || this;
        // Make an initial assumption about the image layout until we can
        // check the rendered element. The value here only takes effect when
        // shouldStartVisible is true.
        _this._coverStyle = _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageCoverStyle"].portrait;
        _this._imageElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._frameElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onImageLoaded = function (ev) {
            var _a = _this.props, src = _a.src, onLoad = _a.onLoad;
            if (onLoad) {
                onLoad(ev);
            }
            _this._computeCoverStyle(_this.props);
            if (src) {
                _this.setState({
                    loadState: _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].loaded
                });
            }
        };
        _this._onImageError = function (ev) {
            if (_this.props.onError) {
                _this.props.onError(ev);
            }
            _this.setState({
                loadState: _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].error
            });
        };
        _this.state = {
            loadState: _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].notLoaded
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    ImageBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        if (nextProps.src !== this.props.src) {
            this.setState({
                loadState: _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].notLoaded
            });
        }
        else if (this.state.loadState === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].loaded) {
            this._computeCoverStyle(nextProps);
        }
    };
    ImageBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        this._checkImageLoaded();
        if (this.props.onLoadingStateChange && prevState.loadState !== this.state.loadState) {
            this.props.onLoadingStateChange(this.state.loadState);
        }
    };
    ImageBase.prototype.render = function () {
        var imageProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["imageProperties"], ['width', 'height']);
        var _a = this.props, src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, shouldFadeIn = _a.shouldFadeIn, shouldStartVisible = _a.shouldStartVisible, className = _a.className, imageFit = _a.imageFit, role = _a.role, maximizeFrame = _a.maximizeFrame, styles = _a.styles, theme = _a.theme;
        var loadState = this.state.loadState;
        var coverStyle = this.props.coverStyle !== undefined ? this.props.coverStyle : this._coverStyle;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            width: width,
            height: height,
            maximizeFrame: maximizeFrame,
            shouldFadeIn: shouldFadeIn,
            shouldStartVisible: shouldStartVisible,
            isLoaded: loadState === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].loaded || (loadState === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].notLoaded && this.props.shouldStartVisible),
            isLandscape: coverStyle === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageCoverStyle"].landscape,
            isCenter: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].center,
            isCenterContain: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerContain,
            isCenterCover: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerCover,
            isContain: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].contain,
            isCover: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].cover,
            isNone: imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].none,
            isError: loadState === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].error,
            isNotImageFit: imageFit === undefined
        });
        // If image dimensions aren't specified, the natural size of the image is used.
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, style: { width: width, height: height }, ref: this._frameElement },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, imageProps, { onLoad: this._onImageLoaded, onError: this._onImageError, key: KEY_PREFIX + this.props.src || '', className: classNames.image, ref: this._imageElement, src: src, alt: alt, role: role }))));
    };
    ImageBase.prototype._checkImageLoaded = function () {
        var src = this.props.src;
        var loadState = this.state.loadState;
        if (loadState === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].notLoaded) {
            // testing if naturalWidth and naturalHeight are greater than zero is better than checking
            // .complete, because .complete will also be set to true if the image breaks. However,
            // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back
            // to checking .complete for these images.
            var isLoaded = this._imageElement.current
                ? (src && (this._imageElement.current.naturalWidth > 0 && this._imageElement.current.naturalHeight > 0)) ||
                    (this._imageElement.current.complete && ImageBase._svgRegex.test(src))
                : false;
            if (isLoaded) {
                this._computeCoverStyle(this.props);
                this.setState({
                    loadState: _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageLoadState"].loaded
                });
            }
        }
    };
    ImageBase.prototype._computeCoverStyle = function (props) {
        var imageFit = props.imageFit, width = props.width, height = props.height;
        // Do not compute cover style if it was already specified in props
        if ((imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].cover ||
            imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].contain ||
            imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerContain ||
            imageFit === _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerCover) &&
            this.props.coverStyle === undefined &&
            this._imageElement.current &&
            this._frameElement.current) {
            // Determine the desired ratio using the width and height props.
            // If those props aren't available, measure measure the frame.
            var desiredRatio = void 0;
            if (!!width && !!height && imageFit !== _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerContain && imageFit !== _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageFit"].centerCover) {
                desiredRatio = width / height;
            }
            else {
                desiredRatio = this._frameElement.current.clientWidth / this._frameElement.current.clientHeight;
            }
            // Examine the source image to determine its original ratio.
            var naturalRatio = this._imageElement.current.naturalWidth / this._imageElement.current.naturalHeight;
            // Should we crop from the top or the sides?
            if (naturalRatio > desiredRatio) {
                this._coverStyle = _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageCoverStyle"].landscape;
            }
            else {
                this._coverStyle = _Image_types__WEBPACK_IMPORTED_MODULE_3__["ImageCoverStyle"].portrait;
            }
        }
    };
    ImageBase.defaultProps = {
        shouldFadeIn: true
    };
    ImageBase._svgRegex = /\.svg$/i;
    return ImageBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Image/Image.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return Image; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Image_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Image/Image.base.js");
/* harmony import */ var _Image_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Image/Image.styles.js");



var Image = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Image_base__WEBPACK_IMPORTED_MODULE_1__["ImageBase"], _Image_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Image'
}, true);


/***/ }),

/***/ "./lib/components/Image/Image.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-Image',
    rootMaximizeFrame: 'ms-Image--maximizeFrame',
    image: 'ms-Image-image',
    imageCenter: 'ms-Image-image--center',
    imageContain: 'ms-Image-image--contain',
    imageCover: 'ms-Image-image--cover',
    imageCenterContain: 'ms-Image-image--centerContain',
    imageCenterCover: 'ms-Image-image--centerCover',
    imageNone: 'ms-Image-image--none',
    imageLandscape: 'ms-Image-image--landscape',
    imagePortrait: 'ms-Image-image--portrait'
};
var getStyles = function (props) {
    var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var ImageFitStyles = {
        position: 'absolute',
        left: '50% /* @noflip */',
        top: '50%',
        transform: 'translate(-50%,-50%)' // @todo test RTL renders transform: translate(50%,-50%);
    };
    // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit
    var window = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getWindow"])();
    var supportsObjectFit = window !== undefined && window.navigator.msMaxTouchPoints === undefined;
    var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape) ? { width: '100%', height: 'auto' } : { width: 'auto', height: '100%' };
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                overflow: 'hidden'
            },
            maximizeFrame && [
                classNames.rootMaximizeFrame,
                {
                    height: '100%',
                    width: '100%'
                }
            ],
            isLoaded && shouldFadeIn && !shouldStartVisible && _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"].fadeIn400,
            (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {
                position: 'relative'
            },
            className
        ],
        image: [
            classNames.image,
            {
                display: 'block',
                opacity: 0
            },
            isLoaded && [
                'is-loaded',
                {
                    opacity: 1
                }
            ],
            isCenter && [classNames.imageCenter, ImageFitStyles],
            isContain && [
                classNames.imageContain,
                supportsObjectFit && {
                    width: '100%',
                    height: '100%',
                    objectFit: 'contain'
                },
                !supportsObjectFit && fallbackObjectFitStyles,
                ImageFitStyles
            ],
            isCover && [
                classNames.imageCover,
                supportsObjectFit && {
                    width: '100%',
                    height: '100%',
                    objectFit: 'cover'
                },
                !supportsObjectFit && fallbackObjectFitStyles,
                ImageFitStyles
            ],
            isCenterContain && [
                classNames.imageCenterContain,
                isLandscape && {
                    maxWidth: '100%'
                },
                !isLandscape && {
                    maxHeight: '100%'
                },
                ImageFitStyles
            ],
            isCenterCover && [
                classNames.imageCenterCover,
                isLandscape && {
                    maxHeight: '100%'
                },
                !isLandscape && {
                    maxWidth: '100%'
                },
                ImageFitStyles
            ],
            isNone && [
                classNames.imageNone,
                {
                    width: 'auto',
                    height: 'auto'
                }
            ],
            isNotImageFit && [
                !!width &&
                    !height && {
                    height: 'auto',
                    width: '100%'
                },
                !width &&
                    !!height && {
                    height: '100%',
                    width: 'auto'
                },
                !!width &&
                    !!height && {
                    height: '100%',
                    width: '100%'
                }
            ],
            isLandscape && classNames.imageLandscape,
            !isLandscape && classNames.imagePortrait,
            !isLoaded && 'is-notLoaded',
            shouldFadeIn && 'is-fadeIn',
            isError && 'is-error'
        ]
    };
};


/***/ }),

/***/ "./lib/components/Image/Image.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageFit", function() { return ImageFit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageCoverStyle", function() { return ImageCoverStyle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageLoadState", function() { return ImageLoadState; });
/**
 * The possible methods that can be used to fit the image.
 * {@docCategory Image}
 */
var ImageFit;
(function (ImageFit) {
    /**
     * The image is not scaled. The image is centered and cropped within the content box.
     */
    ImageFit[ImageFit["center"] = 0] = "center";
    /**
     * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will
     * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of
     * the frame will be empty depending on the difference in aspect ratio between the image and the frame.
     */
    ImageFit[ImageFit["contain"] = 1] = "contain";
    /**
     * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped from
     * the top and bottom, or from the sides, depending on the difference in aspect ratio between the image and the frame.
     */
    ImageFit[ImageFit["cover"] = 2] = "cover";
    /**
     * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the
     * frame will have empty space.
     */
    ImageFit[ImageFit["none"] = 3] = "none";
    /**
     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will
     * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,
     * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.
     */
    ImageFit[ImageFit["centerCover"] = 4] = "centerCover";
    /**
     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will
     * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,
     * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.
     */
    ImageFit[ImageFit["centerContain"] = 5] = "centerContain";
})(ImageFit || (ImageFit = {}));
/**
 * The cover style to be used on the image
 * {@docCategory Image}
 */
var ImageCoverStyle;
(function (ImageCoverStyle) {
    /**
     * The image will be shown at 100% height of container and the width will be scaled accordingly
     */
    ImageCoverStyle[ImageCoverStyle["landscape"] = 0] = "landscape";
    /**
     * The image will be shown at 100% width of container and the height will be scaled accordingly
     */
    ImageCoverStyle[ImageCoverStyle["portrait"] = 1] = "portrait";
})(ImageCoverStyle || (ImageCoverStyle = {}));
/**
 * {@docCategory Image}
 */
var ImageLoadState;
(function (ImageLoadState) {
    /**
     * The image has not yet been loaded, and there is no error yet.
     */
    ImageLoadState[ImageLoadState["notLoaded"] = 0] = "notLoaded";
    /**
     * The image has been loaded successfully.
     */
    ImageLoadState[ImageLoadState["loaded"] = 1] = "loaded";
    /**
     * An error has been encountered while loading the image.
     */
    ImageLoadState[ImageLoadState["error"] = 2] = "error";
    /**
     * Deprecated at v1.3.6, to replace the src in case of errors, use `onLoadingStateChange` instead
     * and rerender the Image with a difference src.
     * @deprecated Use `onLoadingStateChange` instead
     * and rerender the Image with a difference src.
     */
    ImageLoadState[ImageLoadState["errorLoaded"] = 3] = "errorLoaded";
})(ImageLoadState || (ImageLoadState = {}));


/***/ }),

/***/ "./lib/components/Image/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Image/Image.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _Image__WEBPACK_IMPORTED_MODULE_0__["Image"]; });

/* harmony import */ var _Image_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Image/Image.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageBase", function() { return _Image_base__WEBPACK_IMPORTED_MODULE_1__["ImageBase"]; });

/* harmony import */ var _Image_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Image/Image.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageFit", function() { return _Image_types__WEBPACK_IMPORTED_MODULE_2__["ImageFit"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageCoverStyle", function() { return _Image_types__WEBPACK_IMPORTED_MODULE_2__["ImageCoverStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageLoadState", function() { return _Image_types__WEBPACK_IMPORTED_MODULE_2__["ImageLoadState"]; });






/***/ }),

/***/ "./lib/components/Keytip/Keytip.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Keytip", function() { return Keytip; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/keytips/KeytipUtils.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _ContextualMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/ContextualMenu.js");
/* harmony import */ var _KeytipContent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Keytip/KeytipContent.js");
/* harmony import */ var _Keytip_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Keytip/Keytip.styles.js");







/**
 * A callout corresponding to another Fabric component to describe a key sequence that will activate that component
 */
var Keytip = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Keytip, _super);
    function Keytip() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    Keytip.prototype.render = function () {
        var _a = this.props, keySequences = _a.keySequences, offset = _a.offset, overflowSetSequence = _a.overflowSetSequence;
        var calloutProps = this.props.calloutProps;
        var keytipTarget;
        // Take into consideration the overflow sequence
        if (overflowSetSequence) {
            keytipTarget = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_2__["ktpTargetFromSequences"])(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_2__["mergeOverflows"])(keySequences, overflowSetSequence));
        }
        else {
            keytipTarget = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_2__["ktpTargetFromSequences"])(keySequences);
        }
        if (offset) {
            // Set callout to top-left corner, will be further positioned in
            // getCalloutOffsetStyles
            calloutProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calloutProps, { coverTarget: true, directionalHint: _ContextualMenu__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].topLeftEdge });
        }
        if (!calloutProps || calloutProps.directionalHint === undefined) {
            // Default callout directional hint to BottomCenter
            calloutProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calloutProps, { directionalHint: _ContextualMenu__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomCenter });
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_3__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, calloutProps, { isBeakVisible: false, doNotLayer: true, minPagePadding: 0, styles: offset ? Object(_Keytip_styles__WEBPACK_IMPORTED_MODULE_6__["getCalloutOffsetStyles"])(offset) : _Keytip_styles__WEBPACK_IMPORTED_MODULE_6__["getCalloutStyles"], preventDismissOnScroll: true, target: keytipTarget }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipContent__WEBPACK_IMPORTED_MODULE_5__["KeytipContent"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props))));
    };
    return Keytip;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Keytip/Keytip.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCalloutStyles", function() { return getCalloutStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCalloutOffsetStyles", function() { return getCalloutOffsetStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getStyles = function (props) {
    var _a;
    var theme = props.theme, disabled = props.disabled, visible = props.visible;
    return {
        container: [
            {
                backgroundColor: theme.palette.neutralDark
            },
            disabled && {
                opacity: 0.5,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText',
                        opacity: 1
                    },
                    _a)
            },
            !visible && {
                visibility: 'hidden'
            }
        ],
        root: [
            theme.fonts.medium,
            {
                textAlign: 'center',
                paddingLeft: '3px',
                paddingRight: '3px',
                backgroundColor: theme.palette.neutralDark,
                color: theme.palette.neutralLight,
                minWidth: '11px',
                lineHeight: '17px',
                height: '17px',
                display: 'inline-block'
            },
            disabled && {
                color: theme.palette.neutralTertiaryAlt
            }
        ]
    };
};
var getCalloutStyles = function (props) {
    return {
        container: [],
        root: [
            {
                border: 'none',
                boxShadow: 'none'
            }
        ],
        beak: [],
        beakCurtain: [],
        calloutMain: [
            {
                backgroundColor: 'transparent'
            }
        ]
    };
};
var getCalloutOffsetStyles = function (offset) {
    return function (props) {
        return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["mergeStyleSets"])(getCalloutStyles(props), {
            root: [
                {
                    marginLeft: offset.x,
                    marginTop: offset.y
                }
            ]
        });
    };
};


/***/ }),

/***/ "./lib/components/Keytip/KeytipContent.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipContentBase", function() { return KeytipContentBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



/**
 * A component corresponding the the content rendered inside the callout of the keytip component.
 * {@docCategory Keytips}
 */
var KeytipContentBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](KeytipContentBase, _super);
    function KeytipContentBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    KeytipContentBase.prototype.render = function () {
        var _a = this.props, content = _a.content, styles = _a.styles, theme = _a.theme, disabled = _a.disabled, visible = _a.visible;
        var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
        var classNames = getClassNames(styles, {
            theme: theme,
            disabled: disabled,
            visible: visible
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.container },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.root }, content)));
    };
    return KeytipContentBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Keytip/KeytipContent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipContent", function() { return KeytipContent; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _KeytipContent_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Keytip/KeytipContent.base.js");
/* harmony import */ var _Keytip_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Keytip/Keytip.styles.js");



var KeytipContent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_KeytipContent_base__WEBPACK_IMPORTED_MODULE_1__["KeytipContentBase"], _Keytip_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'KeytipContent'
});


/***/ }),

/***/ "./lib/components/Keytip/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Keytip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Keytip/Keytip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keytip", function() { return _Keytip__WEBPACK_IMPORTED_MODULE_0__["Keytip"]; });




/***/ }),

/***/ "./lib/components/KeytipData/KeytipData.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipData", function() { return KeytipData; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/keytips/KeytipManager.js");
/* harmony import */ var _utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/keytips/KeytipUtils.js");





/**
 * A small element to help the target component correctly read out its aria-describedby for its Keytip
 * {@docCategory Keytips}
 */
var KeytipData = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](KeytipData, _super);
    function KeytipData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._keytipManager = _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_3__["KeytipManager"].getInstance();
        return _this;
    }
    KeytipData.prototype.componentDidMount = function () {
        // Register Keytip in KeytipManager
        if (this.props.keytipProps) {
            this._uniqueId = this._keytipManager.register(this._getKtpProps());
        }
    };
    KeytipData.prototype.componentWillUnmount = function () {
        // Unregister Keytip in KeytipManager
        this.props.keytipProps && this._keytipManager.unregister(this._getKtpProps(), this._uniqueId);
    };
    KeytipData.prototype.componentDidUpdate = function (prevProps) {
        if (prevProps.keytipProps !== this.props.keytipProps || prevProps.disabled !== this.props.disabled) {
            // If keytipProps or disabled has changed update Keytip in KeytipManager
            this.props.keytipProps && this._keytipManager.update(this._getKtpProps(), this._uniqueId);
        }
    };
    KeytipData.prototype.render = function () {
        var _a = this.props, children = _a.children, keytipProps = _a.keytipProps, ariaDescribedBy = _a.ariaDescribedBy;
        var nativeKeytipProps = {};
        if (keytipProps) {
            nativeKeytipProps = this._getKtpAttrs(keytipProps, ariaDescribedBy);
        }
        return children(nativeKeytipProps);
    };
    KeytipData.prototype._getKtpProps = function () {
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ disabled: this.props.disabled }, this.props.keytipProps);
    };
    /**
     * Gets the aria- and data- attributes to attach to the component
     * @param keytipProps - props for Keytip
     * @param describedByPrepend - ariaDescribedBy value to prepend
     */
    KeytipData.prototype._getKtpAttrs = function (keytipProps, describedByPrepend) {
        if (keytipProps) {
            // Add the parent overflow sequence if necessary
            var newKeytipProps = this._keytipManager.addParentOverflow(keytipProps);
            // Construct aria-describedby and data-ktp-id attributes and return
            var ariaDescribedBy = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_4__["getAriaDescribedBy"])(newKeytipProps.keySequences);
            var keySequences = newKeytipProps.keySequences.slice();
            if (newKeytipProps.overflowSetSequence) {
                keySequences = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_4__["mergeOverflows"])(keySequences, newKeytipProps.overflowSetSequence);
            }
            var ktpId = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_4__["sequencesToID"])(keySequences);
            return {
                'aria-describedby': Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mergeAriaAttributeValues"])(describedByPrepend, ariaDescribedBy),
                'data-ktp-target': ktpId,
                'data-ktp-execute-target': ktpId
            };
        }
        return undefined;
    };
    return KeytipData;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/KeytipData/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/KeytipData/KeytipData.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipData", function() { return _KeytipData__WEBPACK_IMPORTED_MODULE_0__["KeytipData"]; });




/***/ }),

/***/ "./lib/components/KeytipLayer/KeytipLayer.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipLayerBase", function() { return KeytipLayerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _KeytipLayer_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/KeytipLayer/KeytipLayer.styles.js");
/* harmony import */ var _Keytip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Keytip.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Layer.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/keytips/KeytipManager.js");
/* harmony import */ var _KeytipTree__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/KeytipLayer/KeytipTree.js");
/* harmony import */ var _utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/keytips/KeytipUtils.js");
/* harmony import */ var _utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/keytips/IKeytipTransitionKey.js");
/* harmony import */ var _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/utilities/keytips/KeytipConstants.js");











// Default sequence is Alt-Windows (Alt-Meta) in Windows, Option-Control (Alt-Control) in Mac
var defaultStartSequence = {
    key: Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["isMac"])() ? 'Control' : 'Meta',
    modifierKeys: [_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["KeytipTransitionModifier"].alt]
};
// Default exit sequence is the same as the start sequence
var defaultExitSequence = defaultStartSequence;
// Default return sequence is Escape
var defaultReturnSequence = {
    key: 'Escape'
};
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["classNamesFunction"])();
/**
 * A layer that holds all keytip items
 * {@docCategory Keytips}
 */
var KeytipLayerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](KeytipLayerBase, _super);
    // tslint:disable-next-line:no-any
    function KeytipLayerBase(props, context) {
        var _this = _super.call(this, props, context) || this;
        _this._keytipManager = _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_6__["KeytipManager"].getInstance();
        _this._delayedKeytipQueue = [];
        _this._keyHandled = false;
        _this._onDismiss = function (ev) {
            // if we are in keytip mode, then exit keytip mode
            if (_this.state.inKeytipMode) {
                _this._exitKeytipMode(ev);
            }
        };
        _this._onKeyDown = function (ev) {
            _this._keyHandled = false;
            // using key since which has been deprecated and key is now widely suporrted.
            // See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which
            var key = ev.key;
            switch (key) {
                case 'Alt':
                    // ALT puts focus in the browser bar, so it should not be used as a key for keytips.
                    // It can be used as a modifier
                    break;
                case 'Tab':
                case 'Enter':
                case 'Spacebar':
                case ' ':
                case 'ArrowUp':
                case 'Up':
                case 'ArrowDown':
                case 'Down':
                case 'ArrowLeft':
                case 'Left':
                case 'ArrowRight':
                case 'Right':
                    if (_this.state.inKeytipMode) {
                        _this._keyHandled = true;
                        _this._exitKeytipMode(ev);
                    }
                    break;
                default:
                    // Special cases for browser-specific keys that are not at standard
                    // (according to http://www.w3.org/TR/uievents-key/#keys-navigation)
                    if (key === 'Esc') {
                        // Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/5290772/
                        key = 'Escape';
                    }
                    else if (key === 'OS' || key === 'Win') {
                        // Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1232918
                        // Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/
                        // and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16424492/
                        key = 'Meta';
                    }
                    var transitionKey = { key: key };
                    transitionKey.modifierKeys = _this._getModifierKey(key, ev);
                    _this.processTransitionInput(transitionKey, ev);
                    break;
            }
        };
        _this._onKeyPress = function (ev) {
            if (_this.state.inKeytipMode && !_this._keyHandled) {
                // Call processInput
                _this.processInput(ev.key.toLocaleLowerCase(), ev);
                ev.preventDefault();
                ev.stopPropagation();
            }
        };
        _this._onKeytipAdded = function (eventArgs) {
            var keytipProps = eventArgs.keytip;
            var uniqueID = eventArgs.uniqueID;
            _this._keytipTree.addNode(keytipProps, uniqueID);
            _this._setKeytips();
            // Add the keytip to the queue to show later
            if (_this._keytipTree.isCurrentKeytipParent(keytipProps)) {
                _this._addKeytipToQueue(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytipProps.keySequences));
                // Check to make sure that child of currentKeytip is successfully added to currentKeytip's children and update it if not
                // Note: Added this condition because KeytipTree.addNode was not always reflecting updates made to a parent node in currentKeytip
                // when that parent is the currentKeytip
                if (_this._keytipTree.currentKeytip &&
                    _this._keytipTree.currentKeytip.hasDynamicChildren &&
                    _this._keytipTree.currentKeytip.children.indexOf(keytipProps.id) < 0) {
                    _this._keytipTree.currentKeytip = _this._keytipTree.getNode(_this._keytipTree.currentKeytip.id);
                }
            }
            if (_this._newCurrentKeytipSequences && Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["arraysEqual"])(keytipProps.keySequences, _this._newCurrentKeytipSequences)) {
                _this._triggerKeytipImmediately(keytipProps);
            }
            if (_this._isCurrentKeytipAnAlias(keytipProps)) {
                var keytipSequence = keytipProps.keySequences;
                if (keytipProps.overflowSetSequence) {
                    keytipSequence = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["mergeOverflows"])(keytipSequence, keytipProps.overflowSetSequence);
                }
                _this._keytipTree.currentKeytip = _this._keytipTree.getNode(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytipSequence));
            }
        };
        _this._onKeytipUpdated = function (eventArgs) {
            var keytipProps = eventArgs.keytip;
            var uniqueID = eventArgs.uniqueID;
            _this._keytipTree.updateNode(keytipProps, uniqueID);
            _this._setKeytips();
        };
        _this._onKeytipRemoved = function (eventArgs) {
            var keytipProps = eventArgs.keytip;
            var uniqueID = eventArgs.uniqueID;
            // Remove keytip from the delayed queue
            _this._removeKeytipFromQueue(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytipProps.keySequences));
            // Remove the node from the Tree
            _this._keytipTree.removeNode(keytipProps, uniqueID);
            _this._setKeytips();
        };
        _this._onPersistedKeytipAdded = function (eventArgs) {
            var keytipProps = eventArgs.keytip;
            var uniqueID = eventArgs.uniqueID;
            _this._keytipTree.addNode(keytipProps, uniqueID, true);
        };
        _this._onPersistedKeytipRemoved = function (eventArgs) {
            var keytipProps = eventArgs.keytip;
            var uniqueID = eventArgs.uniqueID;
            _this._keytipTree.removeNode(keytipProps, uniqueID);
        };
        _this._onPersistedKeytipExecute = function (eventArgs) {
            _this._persistedKeytipExecute(eventArgs.overflowButtonSequences, eventArgs.keytipSequences);
        };
        /**
         * Sets if we are in keytip mode.
         * Note, this sets both the state for the layer as well as
         * the value that the manager will expose externally.
         * @param inKeytipMode - Boolean so set whether we are in keytip mode or not
         */
        _this._setInKeytipMode = function (inKeytipMode) {
            _this.setState({ inKeytipMode: inKeytipMode });
            _this._keytipManager.inKeytipMode = inKeytipMode;
        };
        /**
         * Emits a warning if duplicate keytips are found for the children of the current keytip
         */
        _this._warnIfDuplicateKeytips = function () {
            var duplicateKeytips = _this._getDuplicateIds(_this._keytipTree.getChildren());
            if (duplicateKeytips.length) {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["warn"])('Duplicate keytips found for ' + duplicateKeytips.join(', '));
            }
        };
        /**
         * Returns duplicates among keytip IDs
         * If the returned array is empty, no duplicates were found
         *
         * @param keytipIds - Array of keytip IDs to find duplicates for
         * @returns - Array of duplicates that were found. If multiple duplicates were found it will only be added once to this array
         */
        _this._getDuplicateIds = function (keytipIds) {
            var seenIds = {};
            return keytipIds.filter(function (keytipId) {
                seenIds[keytipId] = seenIds[keytipId] ? seenIds[keytipId] + 1 : 1;
                // Only add the first duplicate keytip seen
                return seenIds[keytipId] === 2;
            });
        };
        var managerKeytips = _this._keytipManager.getKeytips().slice();
        _this.state = {
            inKeytipMode: false,
            // Get the initial set of keytips
            keytips: managerKeytips,
            visibleKeytips: _this._getVisibleKeytips(managerKeytips)
        };
        _this._keytipTree = new _KeytipTree__WEBPACK_IMPORTED_MODULE_7__["KeytipTree"]();
        // Add regular and persisted keytips to the tree
        for (var _i = 0, _a = _this._keytipManager.keytips.concat(_this._keytipManager.persistedKeytips); _i < _a.length; _i++) {
            var uniqueKeytip = _a[_i];
            _this._keytipTree.addNode(uniqueKeytip.keytip, uniqueKeytip.uniqueID);
        }
        _this._currentSequence = '';
        // Add keytip listeners
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_ADDED, _this._onKeytipAdded);
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_UPDATED, _this._onKeytipUpdated);
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_REMOVED, _this._onKeytipRemoved);
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_ADDED, _this._onPersistedKeytipAdded);
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_REMOVED, _this._onPersistedKeytipRemoved);
        _this._events.on(_this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_EXECUTE, _this._onPersistedKeytipExecute);
        return _this;
    }
    KeytipLayerBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, content = _a.content, styles = _a.styles;
        var _b = this.state, keytips = _b.keytips, visibleKeytips = _b.visibleKeytips;
        this._classNames = getClassNames(styles, {});
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_4__["Layer"], { styles: _KeytipLayer_styles__WEBPACK_IMPORTED_MODULE_2__["getLayerStyles"] },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KTP_LAYER_ID"], className: this._classNames.innerContent }, "" + content + _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KTP_ARIA_SEPARATOR"]),
            keytips &&
                keytips.map(function (keytipProps, index) {
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { key: index, id: Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytipProps.keySequences), className: _this._classNames.innerContent }, keytipProps.keySequences.join(_utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KTP_ARIA_SEPARATOR"])));
                }),
            visibleKeytips &&
                visibleKeytips.map(function (visibleKeytipProps) {
                    return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Keytip__WEBPACK_IMPORTED_MODULE_3__["Keytip"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(visibleKeytipProps.keySequences) }, visibleKeytipProps));
                })));
    };
    KeytipLayerBase.prototype.componentDidMount = function () {
        // Add window listeners
        this._events.on(window, 'mouseup', this._onDismiss, true /* useCapture */);
        this._events.on(window, 'pointerup', this._onDismiss, true /* useCapture */);
        this._events.on(window, 'resize', this._onDismiss);
        this._events.on(window, 'keydown', this._onKeyDown, true /* useCapture */);
        this._events.on(window, 'keypress', this._onKeyPress, true /* useCapture */);
        this._events.on(window, 'scroll', this._onDismiss, true /* useCapture */);
        // Add keytip listeners
        this._events.on(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].ENTER_KEYTIP_MODE, this._enterKeytipMode);
        this._events.on(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].EXIT_KEYTIP_MODE, this._exitKeytipMode);
    };
    KeytipLayerBase.prototype.componentWillUnmount = function () {
        // Remove window listeners
        this._events.off(window, 'mouseup', this._onDismiss, true /* useCapture */);
        this._events.off(window, 'pointerup', this._onDismiss, true /* useCapture */);
        this._events.off(window, 'resize', this._onDismiss);
        this._events.off(window, 'keydown', this._onKeyDown, true /* useCapture */);
        this._events.off(window, 'keypress', this._onKeyPress, true /* useCapture */);
        this._events.off(window, 'scroll', this._onDismiss, true /* useCapture */);
        // Remove keytip listeners
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_ADDED, this._onKeytipAdded);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_UPDATED, this._onKeytipUpdated);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].KEYTIP_REMOVED, this._onKeytipRemoved);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_ADDED, this._onPersistedKeytipAdded);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_REMOVED, this._onPersistedKeytipRemoved);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].PERSISTED_KEYTIP_EXECUTE, this._onPersistedKeytipExecute);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].ENTER_KEYTIP_MODE, this._enterKeytipMode);
        this._events.off(this._keytipManager, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_10__["KeytipEvents"].EXIT_KEYTIP_MODE, this._exitKeytipMode);
    };
    // The below public functions are only public for testing purposes
    // They are not intended to be used in app code by using a KeytipLayer reference
    KeytipLayerBase.prototype.getCurrentSequence = function () {
        return this._currentSequence;
    };
    KeytipLayerBase.prototype.getKeytipTree = function () {
        return this._keytipTree;
    };
    /**
     * Processes an IKeytipTransitionKey entered by the user
     *
     * @param transitionKey - IKeytipTransitionKey received by the layer to process
     */
    KeytipLayerBase.prototype.processTransitionInput = function (transitionKey, ev) {
        var currKtp = this._keytipTree.currentKeytip;
        if (Object(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["transitionKeysContain"])(this.props.keytipExitSequences, transitionKey) && currKtp) {
            // If key sequence is in 'exit sequences', exit keytip mode
            this._keyHandled = true;
            this._exitKeytipMode(ev);
        }
        else if (Object(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["transitionKeysContain"])(this.props.keytipReturnSequences, transitionKey)) {
            // If key sequence is in return sequences, move currentKeytip to parent (or if currentKeytip is the root, exit)
            if (currKtp) {
                this._keyHandled = true;
                if (currKtp.id === this._keytipTree.root.id) {
                    // We are at the root, exit keytip mode
                    this._exitKeytipMode(ev);
                }
                else {
                    // If this keytip has a onReturn prop, we execute the func.
                    if (currKtp.onReturn) {
                        currKtp.onReturn(this._getKtpExecuteTarget(currKtp), this._getKtpTarget(currKtp));
                    }
                    // Reset currentSequence
                    this._currentSequence = '';
                    // Return pointer to its parent
                    this._keytipTree.currentKeytip = this._keytipTree.getNode(currKtp.parent);
                    // Show children keytips of the new currentKeytip
                    this.showKeytips(this._keytipTree.getChildren());
                    this._warnIfDuplicateKeytips();
                }
            }
        }
        else if (Object(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["transitionKeysContain"])(this.props.keytipStartSequences, transitionKey) && !currKtp) {
            // If key sequence is in 'entry sequences' and currentKeytip is null, we enter keytip mode
            this._keyHandled = true;
            this._enterKeytipMode();
            this._warnIfDuplicateKeytips();
        }
    };
    /**
     * Processes inputs from the document listener and traverse the keytip tree
     *
     * @param key - Key pressed by the user
     */
    KeytipLayerBase.prototype.processInput = function (key, ev) {
        // Concat the input key with the current sequence
        var currSequence = this._currentSequence + key;
        var currKtp = this._keytipTree.currentKeytip;
        // currentKeytip must be defined, otherwise we haven't entered keytip mode yet
        if (currKtp) {
            var node = this._keytipTree.getExactMatchedNode(currSequence, currKtp);
            if (node) {
                this._keytipTree.currentKeytip = currKtp = node;
                var currKtpChildren = this._keytipTree.getChildren();
                // Execute this node's onExecute if defined
                if (currKtp.onExecute) {
                    currKtp.onExecute(this._getKtpExecuteTarget(currKtp), this._getKtpTarget(currKtp));
                    // Reset currKtp, this might have changed from the onExecute
                    currKtp = this._keytipTree.currentKeytip;
                }
                // To exit keytipMode after executing the keytip it must not have a menu or have dynamic children
                if (currKtpChildren.length === 0 && !(currKtp.hasDynamicChildren || currKtp.hasMenu)) {
                    this._exitKeytipMode(ev);
                }
                else {
                    // Show all children keytips
                    this.showKeytips(currKtpChildren);
                    this._warnIfDuplicateKeytips();
                }
                // Clear currentSequence
                this._currentSequence = '';
                return;
            }
            var partialNodes = this._keytipTree.getPartiallyMatchedNodes(currSequence, currKtp);
            if (partialNodes.length > 0) {
                // We found nodes that partially match the sequence, so we show only those
                // Omit showing persisted nodes here
                var ids = partialNodes
                    .filter(function (partialNode) {
                    return !partialNode.persisted;
                })
                    .map(function (partialNode) {
                    return partialNode.id;
                });
                this.showKeytips(ids);
                // Save currentSequence
                this._currentSequence = currSequence;
            }
        }
    };
    /**
     * Show the given keytips and hide all others
     *
     * @param ids - Keytip IDs to show
     */
    KeytipLayerBase.prototype.showKeytips = function (ids) {
        // Update the visible prop in the manager
        for (var _i = 0, _a = this._keytipManager.getKeytips(); _i < _a.length; _i++) {
            var keytip = _a[_i];
            var keytipId = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytip.keySequences);
            if (ids.indexOf(keytipId) >= 0) {
                keytip.visible = true;
            }
            else if (keytip.overflowSetSequence &&
                ids.indexOf(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["mergeOverflows"])(keytip.keySequences, keytip.overflowSetSequence))) >= 0) {
                // Check if the ID with the overflow is the keytip we're looking for
                keytip.visible = true;
            }
            else {
                keytip.visible = false;
            }
        }
        // Apply the manager changes to the Layer state
        this._setKeytips();
    };
    /**
     * Enters keytip mode for this layer
     */
    KeytipLayerBase.prototype._enterKeytipMode = function () {
        if (this._keytipManager.shouldEnterKeytipMode) {
            this._keytipTree.currentKeytip = this._keytipTree.root;
            // Show children of root
            this.showKeytips(this._keytipTree.getChildren());
            this._setInKeytipMode(true /* inKeytipMode */);
            if (this.props.onEnterKeytipMode) {
                this.props.onEnterKeytipMode();
            }
        }
    };
    /**
     * Exits keytip mode for this layer
     */
    KeytipLayerBase.prototype._exitKeytipMode = function (ev) {
        this._keytipTree.currentKeytip = undefined;
        this._currentSequence = '';
        // Hide all keytips
        this.showKeytips([]);
        // Reset the delayed keytips if any
        this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);
        this._delayedKeytipQueue = [];
        this._setInKeytipMode(false /* inKeytipMode */);
        if (this.props.onExitKeytipMode) {
            this.props.onExitKeytipMode(ev);
        }
    };
    /**
     * Sets the keytips state property
     *
     * @param keytipProps - Keytips to set in this layer
     */
    KeytipLayerBase.prototype._setKeytips = function (keytipProps) {
        if (keytipProps === void 0) { keytipProps = this._keytipManager.getKeytips(); }
        this.setState({ keytips: keytipProps, visibleKeytips: this._getVisibleKeytips(keytipProps) });
    };
    /**
     * Callback function to use for persisted keytips
     *
     * @param overflowButtonSequences - The overflow button sequence to execute
     * @param keytipSequences - The keytip that should become the 'currentKeytip' when it is registered
     */
    KeytipLayerBase.prototype._persistedKeytipExecute = function (overflowButtonSequences, keytipSequences) {
        // Save newCurrentKeytip for later
        this._newCurrentKeytipSequences = keytipSequences;
        // Execute the overflow button's onExecute
        var overflowKeytipNode = this._keytipTree.getNode(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(overflowButtonSequences));
        if (overflowKeytipNode && overflowKeytipNode.onExecute) {
            overflowKeytipNode.onExecute(this._getKtpExecuteTarget(overflowKeytipNode), this._getKtpTarget(overflowKeytipNode));
        }
    };
    KeytipLayerBase.prototype._getVisibleKeytips = function (keytips) {
        // Filter out non-visible keytips and duplicates
        var seenIds = {};
        return keytips.filter(function (keytip) {
            var keytipId = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytip.keySequences);
            seenIds[keytipId] = seenIds[keytipId] ? seenIds[keytipId] + 1 : 1;
            return keytip.visible && seenIds[keytipId] === 1;
        });
    };
    /**
     * Gets the ModifierKeyCodes based on the keyboard event
     *
     * @param ev - React.KeyboardEvent
     * @returns List of ModifierKeyCodes that were pressed
     */
    KeytipLayerBase.prototype._getModifierKey = function (key, ev) {
        var modifierKeys = [];
        if (ev.altKey && key !== 'Alt') {
            modifierKeys.push(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["KeytipTransitionModifier"].alt);
        }
        if (ev.ctrlKey && key !== 'Control') {
            modifierKeys.push(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["KeytipTransitionModifier"].ctrl);
        }
        if (ev.shiftKey && key !== 'Shift') {
            modifierKeys.push(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["KeytipTransitionModifier"].shift);
        }
        if (ev.metaKey && key !== 'Meta') {
            modifierKeys.push(_utilities_keytips_IKeytipTransitionKey__WEBPACK_IMPORTED_MODULE_9__["KeytipTransitionModifier"].meta);
        }
        return modifierKeys.length ? modifierKeys : undefined;
    };
    /**
     * Trigger a keytip immediately and set it as the current keytip
     *
     * @param keytipProps - Keytip to trigger immediately
     */
    KeytipLayerBase.prototype._triggerKeytipImmediately = function (keytipProps) {
        // This keytip should become the currentKeytip and should execute right away
        var keytipSequence = keytipProps.keySequences.slice();
        if (keytipProps.overflowSetSequence) {
            keytipSequence = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["mergeOverflows"])(keytipSequence, keytipProps.overflowSetSequence);
        }
        // Set currentKeytip
        this._keytipTree.currentKeytip = this._keytipTree.getNode(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["sequencesToID"])(keytipSequence));
        if (this._keytipTree.currentKeytip) {
            // Show all children keytips if any
            var children = this._keytipTree.getChildren();
            if (children.length) {
                this.showKeytips(children);
            }
            if (this._keytipTree.currentKeytip.onExecute) {
                this._keytipTree.currentKeytip.onExecute(this._getKtpExecuteTarget(this._keytipTree.currentKeytip), this._getKtpTarget(this._keytipTree.currentKeytip));
            }
        }
        // Unset _newCurrKtpSequences
        this._newCurrentKeytipSequences = undefined;
    };
    KeytipLayerBase.prototype._addKeytipToQueue = function (keytipID) {
        var _this = this;
        // Add keytip
        this._delayedKeytipQueue.push(keytipID);
        // Clear timeout
        this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);
        // Reset timeout
        this._delayedQueueTimeout = this._async.setTimeout(function () {
            if (_this._delayedKeytipQueue.length) {
                _this.showKeytips(_this._delayedKeytipQueue);
                _this._delayedKeytipQueue = [];
            }
        }, 300);
    };
    KeytipLayerBase.prototype._removeKeytipFromQueue = function (keytipID) {
        var _this = this;
        var index = this._delayedKeytipQueue.indexOf(keytipID);
        if (index >= 0) {
            // Remove keytip
            this._delayedKeytipQueue.splice(index, 1);
            // Clear timeout
            this._delayedQueueTimeout && this._async.clearTimeout(this._delayedQueueTimeout);
            // Reset timeout
            this._delayedQueueTimeout = this._async.setTimeout(function () {
                if (_this._delayedKeytipQueue.length) {
                    _this.showKeytips(_this._delayedKeytipQueue);
                    _this._delayedKeytipQueue = [];
                }
            }, 300);
        }
    };
    KeytipLayerBase.prototype._getKtpExecuteTarget = function (currKtp) {
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getDocument"])().querySelector(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["ktpTargetFromId"])(currKtp.id));
    };
    KeytipLayerBase.prototype._getKtpTarget = function (currKtp) {
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getDocument"])().querySelector(Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_8__["ktpTargetFromSequences"])(currKtp.keySequences));
    };
    /**
     * Returns T/F if the keytipProps keySequences match the currentKeytip, and the currentKeytip is in an overflow well
     * This will make 'keytipProps' the new currentKeytip
     *
     * @param keytipProps - Keytip props to check
     * @returns - T/F if this keytip should become the currentKeytip
     */
    KeytipLayerBase.prototype._isCurrentKeytipAnAlias = function (keytipProps) {
        var currKtp = this._keytipTree.currentKeytip;
        if (currKtp && (currKtp.overflowSetSequence || currKtp.persisted) && Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["arraysEqual"])(keytipProps.keySequences, currKtp.keySequences)) {
            return true;
        }
        return false;
    };
    KeytipLayerBase.defaultProps = {
        keytipStartSequences: [defaultStartSequence],
        keytipExitSequences: [defaultExitSequence],
        keytipReturnSequences: [defaultReturnSequence],
        content: ''
    };
    return KeytipLayerBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_5__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/KeytipLayer/KeytipLayer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipLayer", function() { return KeytipLayer; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _KeytipLayer_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/KeytipLayer/KeytipLayer.base.js");
/* harmony import */ var _KeytipLayer_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/KeytipLayer/KeytipLayer.styles.js");



var KeytipLayer = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_KeytipLayer_base__WEBPACK_IMPORTED_MODULE_1__["KeytipLayerBase"], _KeytipLayer_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'KeytipLayer'
});


/***/ }),

/***/ "./lib/components/KeytipLayer/KeytipLayer.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLayerStyles", function() { return getLayerStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getLayerStyles = function (props) {
    return {
        root: [
            {
                // Prioritize the Keytips above all other Layers
                zIndex: _Styling__WEBPACK_IMPORTED_MODULE_0__["ZIndexes"].KeytipLayer
            }
        ]
    };
};
var getStyles = function (props) {
    return {
        innerContent: [
            {
                position: 'absolute',
                width: 0,
                height: 0,
                margin: 0,
                padding: 0,
                border: 0,
                overflow: 'hidden',
                visibility: 'hidden'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/KeytipLayer/KeytipTree.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipTree", function() { return KeytipTree; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/keytips/KeytipUtils.js");
/* harmony import */ var _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/keytips/KeytipConstants.js");



/**
 * This class is responsible for handling the parent/child relationships between keytips
 */
var KeytipTree = /** @class */ (function () {
    /**
     * KeytipTree constructor
     */
    function KeytipTree() {
        this.nodeMap = {};
        // Root has no keytipSequence
        this.root = {
            id: _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KTP_LAYER_ID"],
            children: [],
            parent: '',
            keySequences: []
        };
        this.nodeMap[this.root.id] = this.root;
    }
    /**
     * Add a keytip node to this KeytipTree
     *
     * @param keytipProps - Keytip to add to the Tree
     * @param uniqueID - Unique ID for this keytip
     * @param persisted - T/F if this keytip should be marked as persisted
     */
    KeytipTree.prototype.addNode = function (keytipProps, uniqueID, persisted) {
        var fullSequence = this._getFullSequence(keytipProps);
        var nodeID = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(fullSequence);
        // Take off the last item to calculate the parent sequence
        fullSequence.pop();
        // Parent ID is the root if there aren't any more sequences
        var parentID = this._getParentID(fullSequence);
        // Create node and add to map
        var node = this._createNode(nodeID, parentID, [], keytipProps, persisted);
        this.nodeMap[uniqueID] = node;
        // Try to add self to parents children, if they exist
        var parent = this.getNode(parentID);
        if (parent) {
            parent.children.push(nodeID);
        }
    };
    /**
     * Updates a node in the tree
     *
     * @param keytipProps - Keytip props to update
     * @param uniqueID - Unique ID for this keytip
     */
    KeytipTree.prototype.updateNode = function (keytipProps, uniqueID) {
        var fullSequence = this._getFullSequence(keytipProps);
        var nodeID = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(fullSequence);
        // Take off the last item to calculate the parent sequence
        fullSequence.pop();
        // Parent ID is the root if there aren't any more sequences
        var parentID = this._getParentID(fullSequence);
        var node = this.nodeMap[uniqueID];
        var parent = this.getNode(parentID);
        if (node) {
            // If the ID of the node has changed, update node's parent's array of children with new ID
            if (parent && node.id !== nodeID) {
                var index = parent.children.indexOf(node.id);
                index >= 0 && (parent.children[index] = nodeID);
            }
            // Update values
            node.id = nodeID;
            node.keySequences = keytipProps.keySequences;
            node.overflowSetSequence = keytipProps.overflowSetSequence;
            node.onExecute = keytipProps.onExecute;
            node.onReturn = keytipProps.onReturn;
            node.hasDynamicChildren = keytipProps.hasDynamicChildren;
            node.hasMenu = keytipProps.hasMenu;
            node.parent = parentID;
            node.disabled = keytipProps.disabled;
        }
    };
    /**
     * Removes a node from the KeytipTree
     *
     * @param sequence - full string of the node to remove
     */
    KeytipTree.prototype.removeNode = function (keytipProps, uniqueID) {
        var fullSequence = this._getFullSequence(keytipProps);
        var nodeID = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(fullSequence);
        // Take off the last sequence to calculate the parent ID
        fullSequence.pop();
        // Parent ID is the root if there aren't any more sequences
        var parentID = this._getParentID(fullSequence);
        var parent = this.getNode(parentID);
        if (parent) {
            // Remove node from its parent's children
            parent.children.splice(parent.children.indexOf(nodeID), 1);
        }
        if (this.nodeMap[uniqueID]) {
            // Remove the node from the nodeMap
            delete this.nodeMap[uniqueID];
        }
    };
    /**
     * Searches the currentKeytip's children to exactly match a sequence. Will not match disabled nodes but
     * will match persisted nodes
     *
     * @param keySequence - string to match
     * @param currentKeytip - The keytip whose children will try to match
     * @returns The node that exactly matched the keySequence, or undefined if none matched
     */
    KeytipTree.prototype.getExactMatchedNode = function (keySequence, currentKeytip) {
        var _this = this;
        var possibleNodes = this.getNodes(currentKeytip.children);
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["find"])(possibleNodes, function (node) {
            return _this._getNodeSequence(node) === keySequence && !node.disabled;
        });
    };
    /**
     * Searches the currentKeytip's children to find nodes that start with the given sequence. Will not match
     * disabled nodes but will match persisted nodes
     *
     * @param keySequence - string to partially match
     * @param currentKeytip - The keytip whose children will try to partially match
     * @returns List of tree nodes that partially match the given sequence
     */
    KeytipTree.prototype.getPartiallyMatchedNodes = function (keySequence, currentKeytip) {
        var _this = this;
        // Get children that are persisted
        var possibleNodes = this.getNodes(currentKeytip.children);
        return possibleNodes.filter(function (node) {
            return _this._getNodeSequence(node).indexOf(keySequence) === 0 && !node.disabled;
        });
    };
    /**
     * Get the non-persisted children of the give node
     * If no node is given, will use the 'currentKeytip'
     *
     * @param node - Node to get the children for
     * @returns List of node IDs that are the children of the node
     */
    KeytipTree.prototype.getChildren = function (node) {
        var _this = this;
        if (!node) {
            node = this.currentKeytip;
            if (!node) {
                return [];
            }
        }
        var children = node.children;
        return Object.keys(this.nodeMap).reduce(function (nodes, key) {
            if (children.indexOf(_this.nodeMap[key].id) >= 0 && !_this.nodeMap[key].persisted) {
                nodes.push(_this.nodeMap[key].id);
            }
            return nodes;
        }, []);
    };
    /**
     * Gets all nodes from their IDs
     *
     * @param ids - List of keytip IDs
     * @returns Array of nodes that match the given IDs, can be empty
     */
    KeytipTree.prototype.getNodes = function (ids) {
        var _this = this;
        return Object.keys(this.nodeMap).reduce(function (nodes, key) {
            if (ids.indexOf(_this.nodeMap[key].id) >= 0) {
                nodes.push(_this.nodeMap[key]);
            }
            return nodes;
        }, []);
    };
    /**
     * Gets a single node from its ID
     *
     * @param id - ID of the node to get
     * @returns Node with the given ID, if found
     */
    KeytipTree.prototype.getNode = function (id) {
        var nodeMapValues = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["values"])(this.nodeMap);
        return Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["find"])(nodeMapValues, function (node) {
            return node.id === id;
        });
    };
    /**
     * Tests if the currentKeytip in this.keytipTree is the parent of 'keytipProps'
     *
     * @param keytipProps - Keytip to test the parent for
     * @returns T/F if the currentKeytip is this keytipProps' parent
     */
    KeytipTree.prototype.isCurrentKeytipParent = function (keytipProps) {
        if (this.currentKeytip) {
            var fullSequence = keytipProps.keySequences.slice();
            if (keytipProps.overflowSetSequence) {
                fullSequence = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["mergeOverflows"])(fullSequence, keytipProps.overflowSetSequence);
            }
            // Take off the last sequence to calculate the parent ID
            fullSequence.pop();
            // Parent ID is the root if there aren't any more sequences
            var parentID = fullSequence.length === 0 ? this.root.id : Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(fullSequence);
            var matchesCurrWithoutOverflow = false;
            if (this.currentKeytip.overflowSetSequence) {
                var currKeytipIdWithoutOverflow = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(this.currentKeytip.keySequences);
                matchesCurrWithoutOverflow = currKeytipIdWithoutOverflow === parentID;
            }
            return matchesCurrWithoutOverflow || this.currentKeytip.id === parentID;
        }
        return false;
    };
    KeytipTree.prototype._getParentID = function (fullSequence) {
        return fullSequence.length === 0 ? this.root.id : Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["sequencesToID"])(fullSequence);
    };
    KeytipTree.prototype._getFullSequence = function (keytipProps) {
        var fullSequence = keytipProps.keySequences.slice();
        if (keytipProps.overflowSetSequence) {
            fullSequence = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["mergeOverflows"])(fullSequence, keytipProps.overflowSetSequence);
        }
        return fullSequence;
    };
    KeytipTree.prototype._getNodeSequence = function (node) {
        var fullSequence = node.keySequences.slice();
        if (node.overflowSetSequence) {
            fullSequence = Object(_utilities_keytips_KeytipUtils__WEBPACK_IMPORTED_MODULE_1__["mergeOverflows"])(fullSequence, node.overflowSetSequence);
        }
        return fullSequence[fullSequence.length - 1];
    };
    KeytipTree.prototype._createNode = function (id, parentId, children, keytipProps, persisted) {
        var _this = this;
        var keySequences = keytipProps.keySequences, hasDynamicChildren = keytipProps.hasDynamicChildren, overflowSetSequence = keytipProps.overflowSetSequence, hasMenu = keytipProps.hasMenu, onExecute = keytipProps.onExecute, onReturn = keytipProps.onReturn, disabled = keytipProps.disabled;
        var node = {
            id: id,
            keySequences: keySequences,
            overflowSetSequence: overflowSetSequence,
            parent: parentId,
            children: children,
            onExecute: onExecute,
            onReturn: onReturn,
            hasDynamicChildren: hasDynamicChildren,
            hasMenu: hasMenu,
            disabled: disabled,
            persisted: persisted
        };
        node.children = Object.keys(this.nodeMap).reduce(function (array, nodeMapKey) {
            if (_this.nodeMap[nodeMapKey].parent === id) {
                array.push(_this.nodeMap[nodeMapKey].id);
            }
            return array;
        }, []);
        return node;
    };
    return KeytipTree;
}());



/***/ }),

/***/ "./lib/components/KeytipLayer/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _KeytipLayer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/KeytipLayer/KeytipLayer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayer", function() { return _KeytipLayer__WEBPACK_IMPORTED_MODULE_0__["KeytipLayer"]; });

/* harmony import */ var _KeytipLayer_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/KeytipLayer/KeytipLayer.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayerBase", function() { return _KeytipLayer_base__WEBPACK_IMPORTED_MODULE_1__["KeytipLayerBase"]; });





/***/ }),

/***/ "./lib/components/Label/Label.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelBase", function() { return LabelBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])({
    disableCaching: true
});
var LabelBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](LabelBase, _super);
    function LabelBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    LabelBase.prototype.render = function () {
        var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;
        var classNames = getClassNames(styles, {
            className: className,
            disabled: disabled,
            required: required,
            theme: theme
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RootType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]), { className: classNames.root }), children));
    };
    return LabelBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Label/Label.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return Label; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Label_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Label/Label.base.js");
/* harmony import */ var _Label_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Label/Label.styles.js");



var Label = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Label_base__WEBPACK_IMPORTED_MODULE_1__["LabelBase"], _Label_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Label'
});


/***/ }),

/***/ "./lib/components/Label/Label.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getStyles = function (props) {
    var _a;
    var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;
    var semanticColors = theme.semanticColors;
    // Tokens
    var labelFontWeight = _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold;
    var labelColor = semanticColors.bodyText;
    var labelDisabledColor = semanticColors.disabledBodyText;
    var labelRequiredStarColor = semanticColors.errorText;
    return {
        root: [
            'ms-Label',
            theme.fonts.medium,
            {
                fontWeight: labelFontWeight,
                color: labelColor,
                boxSizing: 'border-box',
                boxShadow: 'none',
                margin: 0,
                display: 'block',
                padding: '5px 0',
                wordWrap: 'break-word',
                overflowWrap: 'break-word'
            },
            disabled && {
                color: labelDisabledColor,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText'
                    },
                    _a)
            },
            required && {
                selectors: {
                    '::after': {
                        content: "' *'",
                        color: labelRequiredStarColor,
                        paddingRight: 12
                    }
                }
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Label/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Label_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Label/Label.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelBase", function() { return _Label_base__WEBPACK_IMPORTED_MODULE_0__["LabelBase"]; });

/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Label/Label.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return _Label__WEBPACK_IMPORTED_MODULE_1__["Label"]; });





/***/ }),

/***/ "./lib/components/Layer/Layer.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayerBase", function() { return LayerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _Fabric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Fabric.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Layer_notification__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Layer/Layer.notification.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["classNamesFunction"])();
var LayerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](LayerBase, _super);
    function LayerBase(props) {
        var _this = _super.call(this, props) || this;
        _this._rootRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._createLayerElement = function () {
            var hostId = _this.props.hostId;
            var doc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getDocument"])(_this._rootRef.current);
            var host = _this._getHost();
            if (!doc || !host) {
                return;
            }
            // If one was already existing, remove.
            _this._removeLayerElement();
            var layerElement = doc.createElement('div');
            var classNames = _this._getClassNames();
            layerElement.className = classNames.root;
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["setPortalAttribute"])(layerElement);
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["setVirtualParent"])(layerElement, _this._rootRef.current);
            _this.props.insertFirst ? host.insertBefore(layerElement, host.firstChild) : host.appendChild(layerElement);
            _this.setState({
                hostId: hostId,
                layerElement: layerElement
            }, function () {
                var _a = _this.props, onLayerDidMount = _a.onLayerDidMount, onLayerMounted = _a.onLayerMounted;
                if (onLayerMounted) {
                    onLayerMounted();
                }
                if (onLayerDidMount) {
                    onLayerDidMount();
                }
            });
        };
        _this.state = {};
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["warnDeprecations"])('Layer', props, {
                onLayerMounted: 'onLayerDidMount'
            });
        }
        return _this;
    }
    LayerBase.prototype.componentDidMount = function () {
        var hostId = this.props.hostId;
        this._createLayerElement();
        if (hostId) {
            Object(_Layer_notification__WEBPACK_IMPORTED_MODULE_5__["registerLayer"])(hostId, this._createLayerElement);
        }
    };
    LayerBase.prototype.render = function () {
        var layerElement = this.state.layerElement;
        var classNames = this._getClassNames();
        var eventBubblingEnabled = this.props.eventBubblingEnabled;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: "ms-layer", ref: this._rootRef }, layerElement &&
            react_dom__WEBPACK_IMPORTED_MODULE_2__["createPortal"](react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Fabric__WEBPACK_IMPORTED_MODULE_3__["Fabric"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, !eventBubblingEnabled && _getFilteredEvents(), { className: classNames.content }), this.props.children), layerElement)));
    };
    LayerBase.prototype.componentDidUpdate = function () {
        if (this.props.hostId !== this.state.hostId) {
            this._createLayerElement();
        }
    };
    LayerBase.prototype.componentWillUnmount = function () {
        var hostId = this.props.hostId;
        this._removeLayerElement();
        if (hostId) {
            Object(_Layer_notification__WEBPACK_IMPORTED_MODULE_5__["unregisterLayer"])(hostId, this._createLayerElement);
        }
    };
    LayerBase.prototype._removeLayerElement = function () {
        var onLayerWillUnmount = this.props.onLayerWillUnmount;
        var layerElement = this.state.layerElement;
        if (onLayerWillUnmount) {
            onLayerWillUnmount();
        }
        if (layerElement && layerElement.parentNode) {
            var parentNode = layerElement.parentNode;
            if (parentNode) {
                parentNode.removeChild(layerElement);
            }
        }
    };
    LayerBase.prototype._getClassNames = function () {
        var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            isNotHost: !this.props.hostId
        });
        return classNames;
    };
    LayerBase.prototype._getHost = function () {
        var hostId = this.props.hostId;
        var doc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getDocument"])(this._rootRef.current);
        if (!doc) {
            return undefined;
        }
        if (hostId) {
            return doc.getElementById(hostId);
        }
        else {
            var defaultHostSelector = Object(_Layer_notification__WEBPACK_IMPORTED_MODULE_5__["getDefaultTarget"])();
            return defaultHostSelector ? doc.querySelector(defaultHostSelector) : doc.body;
        }
    };
    LayerBase.defaultProps = {
        onLayerDidMount: function () { return undefined; },
        onLayerWillUnmount: function () { return undefined; }
    };
    LayerBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["customizable"])('Layer', ['theme', 'hostId'])
    ], LayerBase);
    return LayerBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

var _onFilterEvent = function (ev) {
    // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though mouseenter and
    //    mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on event name rather than ev.bubble.
    if (ev.eventPhase === Event.BUBBLING_PHASE && ev.type !== 'mouseenter' && ev.type !== 'mouseleave') {
        ev.stopPropagation();
    }
};
var _filteredEventProps;
function _getFilteredEvents() {
    if (!_filteredEventProps) {
        _filteredEventProps = {};
        [
            'onClick',
            'onContextMenu',
            'onDoubleClick',
            'onDrag',
            'onDragEnd',
            'onDragEnter',
            'onDragExit',
            'onDragLeave',
            'onDragOver',
            'onDragStart',
            'onDrop',
            'onMouseDown',
            'onMouseEnter',
            'onMouseLeave',
            'onMouseMove',
            'onMouseOver',
            'onMouseOut',
            'onMouseUp',
            'onKeyDown',
            'onKeyPress',
            'onKeyUp',
            'onFocus',
            'onBlur',
            'onChange',
            'onInput',
            'onInvalid',
            'onSubmit'
        ].forEach(function (name) { return (_filteredEventProps[name] = _onFilterEvent); });
    }
    return _filteredEventProps;
}


/***/ }),

/***/ "./lib/components/Layer/Layer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return Layer; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Layer_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Layer/Layer.base.js");
/* harmony import */ var _Layer_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Layer/Layer.styles.js");



var Layer = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Layer_base__WEBPACK_IMPORTED_MODULE_1__["LayerBase"], _Layer_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Layer',
    fields: ['hostId', 'theme', 'styles']
});


/***/ }),

/***/ "./lib/components/Layer/Layer.notification.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerLayer", function() { return registerLayer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unregisterLayer", function() { return unregisterLayer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "notifyHostChanged", function() { return notifyHostChanged; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultTarget", function() { return setDefaultTarget; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultTarget", function() { return getDefaultTarget; });
var _layersByHostId = {};
var _defaultHostSelector;
/**
 * Register a layer for a given host id
 * @param hostId Id of the layer host
 * @param layer Layer instance
 */
function registerLayer(hostId, callback) {
    if (!_layersByHostId[hostId]) {
        _layersByHostId[hostId] = [];
    }
    _layersByHostId[hostId].push(callback);
}
/**
 * Unregister a layer for a given host id
 * @param hostId Id of the layer host
 * @param layer Layer instance
 */
function unregisterLayer(hostId, callback) {
    if (_layersByHostId[hostId]) {
        var idx = _layersByHostId[hostId].indexOf(callback);
        if (idx >= 0) {
            _layersByHostId[hostId].splice(idx, 1);
            if (_layersByHostId[hostId].length === 0) {
                delete _layersByHostId[hostId];
            }
        }
    }
}
/**
 * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that
 * care about the specific host.
 */
function notifyHostChanged(id) {
    if (_layersByHostId[id]) {
        _layersByHostId[id].forEach(function (callback) { return callback(); });
    }
}
/**
 * Sets the default target selector to use when determining the host in which
 * Layered content will be injected into. If not provided, an element will be
 * created at the end of the document body.
 *
 * Passing in a falsey value will clear the default target and reset back to
 * using a created element at the end of document body.
 */
function setDefaultTarget(selector) {
    _defaultHostSelector = selector;
}
/**
 * Get the default target selector when determining a host
 */
function getDefaultTarget() {
    return _defaultHostSelector;
}


/***/ }),

/***/ "./lib/components/Layer/Layer.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Layer',
    rootNoHost: 'ms-Layer--fixed',
    content: 'ms-Layer-content'
};
var getStyles = function (props) {
    var className = props.className, isNotHost = props.isNotHost, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            isNotHost && [
                classNames.rootNoHost,
                {
                    position: 'fixed',
                    zIndex: _Styling__WEBPACK_IMPORTED_MODULE_0__["ZIndexes"].Layer,
                    top: 0,
                    left: 0,
                    bottom: 0,
                    right: 0,
                    visibility: 'hidden'
                }
            ],
            className
        ],
        content: [
            classNames.content,
            {
                visibility: 'visible'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Layer/LayerHost.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayerHost", function() { return LayerHost; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Layer_notification__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Layer/Layer.notification.js");




var LayerHost = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](LayerHost, _super);
    function LayerHost() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    LayerHost.prototype.shouldComponentUpdate = function () {
        return false;
    };
    LayerHost.prototype.componentDidMount = function () {
        Object(_Layer_notification__WEBPACK_IMPORTED_MODULE_3__["notifyHostChanged"])(this.props.id);
    };
    LayerHost.prototype.componentWillUnmount = function () {
        Object(_Layer_notification__WEBPACK_IMPORTED_MODULE_3__["notifyHostChanged"])(this.props.id);
    };
    LayerHost.prototype.render = function () {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-LayerHost', this.props.className) }));
    };
    return LayerHost;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Layer/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Layer/Layer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return _Layer__WEBPACK_IMPORTED_MODULE_0__["Layer"]; });

/* harmony import */ var _Layer_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Layer/Layer.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerBase", function() { return _Layer_base__WEBPACK_IMPORTED_MODULE_1__["LayerBase"]; });

/* harmony import */ var _LayerHost__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Layer/LayerHost.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerHost", function() { return _LayerHost__WEBPACK_IMPORTED_MODULE_2__["LayerHost"]; });






/***/ }),

/***/ "./lib/components/Link/Link.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinkBase", function() { return LinkBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/KeytipData.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var LinkBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](LinkBase, _super);
    function LinkBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._link = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onClick = function (ev) {
            var _a = _this.props, onClick = _a.onClick, disabled = _a.disabled;
            if (disabled) {
                ev.preventDefault();
            }
            else if (onClick) {
                onClick(ev);
            }
        };
        return _this;
    }
    LinkBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, disabled = _a.disabled, children = _a.children, className = _a.className, href = _a.href, theme = _a.theme, styles = _a.styles, keytipProps = _a.keytipProps;
        var classNames = getClassNames(styles, {
            className: className,
            isButton: !href,
            isDisabled: disabled,
            theme: theme
        });
        var RootType = this._getRootType(this.props);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_3__["KeytipData"], { keytipProps: keytipProps, ariaDescribedBy: this.props['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RootType, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipAttributes, _this._adjustPropsForRootType(RootType, _this.props), { className: classNames.root, onClick: _this._onClick, ref: _this._link, "aria-disabled": disabled }), children)); }));
    };
    LinkBase.prototype.focus = function () {
        var current = this._link.current;
        if (current && current.focus) {
            current.focus();
        }
    };
    LinkBase.prototype._adjustPropsForRootType = function (RootType, props) {
        // Deconstruct the props so we remove props like `as`, `theme` and `styles`
        // as those will always be removed. We also take some props that are optional
        // based on the RootType.
        var children = props.children, as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, restProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](props, ["children", "as", "disabled", "target", "href", "theme", "getStyles", "styles", "componentRef"]);
        // RootType will be a string if we're dealing with an html component
        if (typeof RootType === 'string') {
            // Remove the disabled prop for anchor elements
            if (RootType === 'a') {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ target: target, href: disabled ? undefined : href }, restProps);
            }
            // Add the type='button' prop for button elements
            if (RootType === 'button') {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ type: 'button', disabled: disabled }, restProps);
            }
            // Remove the target and href props for all other non anchor elements
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, restProps, { disabled: disabled });
        }
        // Retain all props except 'as' for ReactComponents
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ target: target, href: href, disabled: disabled }, restProps);
    };
    LinkBase.prototype._getRootType = function (props) {
        if (props.as) {
            return props.as;
        }
        if (props.href) {
            return 'a';
        }
        return 'button';
    };
    return LinkBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Link/Link.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return Link; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Link_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Link/Link.base.js");
/* harmony import */ var _Link_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Link/Link.styles.js");



var Link = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Link_base__WEBPACK_IMPORTED_MODULE_1__["LinkBase"], _Link_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Link'
});


/***/ }),

/***/ "./lib/components/Link/Link.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Link'
};
var getStyles = function (props) {
    var _a, _b, _c;
    var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, theme = props.theme;
    var semanticColors = theme.semanticColors;
    // Tokens
    var linkColor = semanticColors.link;
    var linkInteractedColor = semanticColors.linkHovered;
    var linkDisabledColor = semanticColors.disabledText;
    var focusBorderColor = semanticColors.focusBorder;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                color: linkColor,
                outline: 'none',
                fontSize: 'inherit',
                fontWeight: 'inherit',
                selectors: (_a = {
                        '.ms-Fabric--isFocusVisible &:focus': {
                            // Can't use getFocusStyle because it doesn't support wrapping links
                            // https://github.com/OfficeDev/office-ui-fabric-react/issues/4883#issuecomment-406743543
                            // A box-shadow allows the focus rect to wrap links that span multiple lines
                            // and helps the focus rect avoid getting clipped.
                            boxShadow: "0 0 0 1px " + focusBorderColor + " inset",
                            selectors: (_b = {},
                                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    outline: '1px solid WindowText'
                                },
                                _b)
                        }
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        // For IE high contrast mode
                        borderBottom: 'none'
                    },
                    _a)
            },
            isButton && {
                background: 'none',
                backgroundColor: 'transparent',
                border: 'none',
                cursor: 'pointer',
                display: 'inline',
                margin: 0,
                overflow: 'inherit',
                padding: 0,
                textAlign: 'left',
                textOverflow: 'inherit',
                userSelect: 'text',
                borderBottom: '1px solid transparent',
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelectorBlack"]] = {
                        color: '#FFFF00'
                    },
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelectorWhite"]] = {
                        color: '#00009F'
                    },
                    _c)
            },
            !isButton && {
                textDecoration: 'none'
            },
            isDisabled && [
                'is-disabled',
                {
                    color: linkDisabledColor,
                    cursor: 'default'
                },
                {
                    selectors: {
                        '&:link, &:visited': {
                            pointerEvents: 'none'
                        }
                    }
                }
            ],
            !isDisabled && {
                selectors: {
                    '&:active, &:hover, &:active:hover': {
                        color: linkInteractedColor,
                        textDecoration: 'underline'
                    },
                    '&:focus': {
                        color: linkColor
                    }
                }
            },
            classNames.root,
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Link/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Link/Link.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return _Link__WEBPACK_IMPORTED_MODULE_0__["Link"]; });

/* harmony import */ var _Link_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Link/Link.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinkBase", function() { return _Link_base__WEBPACK_IMPORTED_MODULE_1__["LinkBase"]; });





/***/ }),

/***/ "./lib/components/List/List.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "List", function() { return List; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _List_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/List/List.types.js");




var RESIZE_DELAY = 16;
var MIN_SCROLL_UPDATE_DELAY = 100;
var MAX_SCROLL_UPDATE_DELAY = 500;
var IDLE_DEBOUNCE_DELAY = 200;
// The amount of time to wait before declaring that the list isn't scrolling
var DONE_SCROLLING_WAIT = 500;
var DEFAULT_ITEMS_PER_PAGE = 10;
var DEFAULT_PAGE_HEIGHT = 30;
var DEFAULT_RENDERED_WINDOWS_BEHIND = 2;
var DEFAULT_RENDERED_WINDOWS_AHEAD = 2;
var PAGE_KEY_PREFIX = 'page-';
var SPACER_KEY_PREFIX = 'spacer-';
var EMPTY_RECT = {
    top: -1,
    bottom: -1,
    left: -1,
    right: -1,
    width: 0,
    height: 0
};
// Naming expensive measures so that they're named in profiles.
var _measurePageRect = function (element) { return element.getBoundingClientRect(); };
var _measureSurfaceRect = _measurePageRect;
var _measureScrollRect = _measurePageRect;
/**
 * The List renders virtualized pages of items. Each page's item count is determined by the getItemCountForPage callback if
 * provided by the caller, or 10 as default. Each page's height is determined by the getPageHeight callback if provided by
 * the caller, or by cached measurements if available, or by a running average, or a default fallback.
 *
 * The algorithm for rendering pages works like this:
 *
 * 1. Predict visible pages based on "current measure data" (page heights, surface position, visible window)
 * 2. If changes are necessary, apply changes (add/remove pages)
 * 3. For pages that are added, measure the page heights if we need to using getBoundingClientRect
 * 4. If measurements don't match predictions, update measure data and goto step 1 asynchronously
 *
 * Measuring too frequently can pull performance down significantly. To compensate, we cache measured values so that
 * we can avoid re-measuring during operations that should not alter heights, like scrolling.
 *
 * To optimize glass rendering performance, onShouldVirtualize can be set. When onShouldVirtualize return false,
 * List will run in fast mode (not virtualized) to render all items without any measurements to improve page load time. And we
 * start doing measurements and rendering in virtualized mode when items grows larger than this threshold.
 *
 * However, certain operations can make measure data stale. For example, resizing the list, or passing in new props,
 * or forcing an update change cause pages to shrink/grow. When these operations occur, we increment a measureVersion
 * number, which we associate with cached measurements and use to determine if a remeasure should occur.
 */
var List = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](List, _super);
    function List(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._surface = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderPage = function (pageProps, defaultRender) {
            var _a = _this.props, onRenderCell = _a.onRenderCell, role = _a.role;
            var _b = pageProps.page, _c = _b.items, items = _c === void 0 ? [] : _c, startIndex = _b.startIndex, divProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](pageProps, ["page"]);
            // only assign list item role if no role is assigned
            var cellRole = role === undefined ? 'listitem' : 'presentation';
            var cells = [];
            for (var i = 0; i < items.length; i++) {
                var index = startIndex + i;
                var item = items[i];
                var itemKey = _this.props.getKey ? _this.props.getKey(item, index) : item && item.key;
                if (itemKey === null || itemKey === undefined) {
                    itemKey = index;
                }
                cells.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: cellRole, className: 'ms-List-cell', key: itemKey, "data-list-index": index, "data-automationid": "ListCell" }, onRenderCell && onRenderCell(item, index, _this.state.isScrolling)));
            }
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps), cells);
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this.state = {
            pages: [],
            isScrolling: false
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["Async"](_this);
        _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["EventGroup"](_this);
        _this._estimatedPageHeight = 0;
        _this._totalEstimates = 0;
        _this._requiredWindowsAhead = 0;
        _this._requiredWindowsBehind = 0;
        // Track the measure version for everything.
        _this._measureVersion = 0;
        // Ensure that scrolls are lazy updated.
        _this._onAsyncScroll = _this._async.debounce(_this._onAsyncScroll, MIN_SCROLL_UPDATE_DELAY, {
            leading: false,
            maxWait: MAX_SCROLL_UPDATE_DELAY
        });
        _this._onAsyncIdle = _this._async.debounce(_this._onAsyncIdle, IDLE_DEBOUNCE_DELAY, {
            leading: false
        });
        _this._onAsyncResize = _this._async.debounce(_this._onAsyncResize, RESIZE_DELAY, {
            leading: false
        });
        _this._onScrollingDone = _this._async.debounce(_this._onScrollingDone, DONE_SCROLLING_WAIT, {
            leading: false
        });
        _this._cachedPageHeights = {};
        _this._estimatedPageHeight = 0;
        _this._focusedIndex = -1;
        _this._pageCache = {};
        return _this;
    }
    /**
     * Scroll to the given index. By default will bring the page the specified item is on into the view. If a callback
     * to measure the height of an individual item is specified, will only scroll to bring the specific item into view.
     *
     * Note: with items of variable height and no passed in `getPageHeight` method, the list might jump after scrolling
     * when windows before/ahead are being rendered, and the estimated height is replaced using actual elements.
     *
     * @param index - Index of item to scroll to
     * @param measureItem - Optional callback to measure the height of an individual item
     * @param scrollToMode - Optional defines where in the window the item should be positioned to when scrolling
     */
    List.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {
        if (scrollToMode === void 0) { scrollToMode = _List_types__WEBPACK_IMPORTED_MODULE_3__["ScrollToMode"].auto; }
        var startIndex = this.props.startIndex;
        var renderCount = this._getRenderCount();
        var endIndex = startIndex + renderCount;
        var allowedRect = this._allowedRect;
        var scrollTop = 0;
        var itemsPerPage = 1;
        for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {
            var pageSpecification = this._getPageSpecification(itemIndex, allowedRect);
            var pageHeight = pageSpecification.height;
            itemsPerPage = pageSpecification.itemCount;
            var requestedIndexIsInPage = itemIndex <= index && itemIndex + itemsPerPage > index;
            if (requestedIndexIsInPage) {
                // We have found the page. If the user provided a way to measure an individual item, we will try to scroll in just
                // the given item, otherwise we'll only bring the page into view
                if (measureItem && this._scrollElement) {
                    var scrollRect = _measureScrollRect(this._scrollElement);
                    var scrollWindow = {
                        top: this._scrollElement.scrollTop,
                        bottom: this._scrollElement.scrollTop + scrollRect.height
                    };
                    // Adjust for actual item position within page
                    var itemPositionWithinPage = index - itemIndex;
                    for (var itemIndexInPage = 0; itemIndexInPage < itemPositionWithinPage; ++itemIndexInPage) {
                        scrollTop += measureItem(itemIndex + itemIndexInPage);
                    }
                    var scrollBottom = scrollTop + measureItem(index);
                    // If scrollToMode is set to something other than auto, we always want to
                    // scroll the item into a specific position on the page.
                    switch (scrollToMode) {
                        case _List_types__WEBPACK_IMPORTED_MODULE_3__["ScrollToMode"].top:
                            this._scrollElement.scrollTop = scrollTop;
                            return;
                        case _List_types__WEBPACK_IMPORTED_MODULE_3__["ScrollToMode"].bottom:
                            this._scrollElement.scrollTop = scrollBottom - scrollRect.height;
                            return;
                        case _List_types__WEBPACK_IMPORTED_MODULE_3__["ScrollToMode"].center:
                            this._scrollElement.scrollTop = (scrollTop + scrollBottom - scrollRect.height) / 2;
                            return;
                        case _List_types__WEBPACK_IMPORTED_MODULE_3__["ScrollToMode"].auto:
                        default:
                            break;
                    }
                    var itemIsFullyVisible = scrollTop >= scrollWindow.top && scrollBottom <= scrollWindow.bottom;
                    if (itemIsFullyVisible) {
                        // Item is already visible, do nothing.
                        return;
                    }
                    var itemIsPartiallyAbove = scrollTop < scrollWindow.top;
                    var itemIsPartiallyBelow = scrollBottom > scrollWindow.bottom;
                    if (itemIsPartiallyAbove) {
                        //  We will just scroll to 'scrollTop'
                        //  .------.   - scrollTop
                        //  |Item  |
                        //  | .----|-. - scrollWindow.top
                        //  '------' |
                        //    |      |
                        //    '------'
                    }
                    else if (itemIsPartiallyBelow) {
                        //  Adjust scrollTop position to just bring in the element
                        // .------.  - scrollTop
                        // |      |
                        // | .------.
                        // '-|----' | - scrollWindow.bottom
                        //   | Item |
                        //   '------' - scrollBottom
                        scrollTop = scrollBottom - scrollRect.height;
                    }
                }
                this._scrollElement.scrollTop = scrollTop;
                return;
            }
            scrollTop += pageHeight;
        }
    };
    List.prototype.getStartItemIndexInView = function (measureItem) {
        var pages = this.state.pages || [];
        for (var _i = 0, pages_1 = pages; _i < pages_1.length; _i++) {
            var page = pages_1[_i];
            var isPageVisible = !page.isSpacer && (this._scrollTop || 0) >= page.top && (this._scrollTop || 0) <= page.top + page.height;
            if (isPageVisible) {
                if (!measureItem) {
                    var rowHeight = Math.floor(page.height / page.itemCount);
                    return page.startIndex + Math.floor((this._scrollTop - page.top) / rowHeight);
                }
                else {
                    var totalRowHeight = 0;
                    for (var itemIndex = page.startIndex; itemIndex < page.startIndex + page.itemCount; itemIndex++) {
                        var rowHeight = measureItem(itemIndex);
                        if (page.top + totalRowHeight <= this._scrollTop && this._scrollTop < page.top + totalRowHeight + rowHeight) {
                            return itemIndex;
                        }
                        else {
                            totalRowHeight += rowHeight;
                        }
                    }
                }
            }
        }
        return 0;
    };
    List.prototype.componentDidMount = function () {
        this._updatePages();
        this._measureVersion++;
        this._scrollElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findScrollableParent"])(this._root.current);
        this._events.on(window, 'resize', this._onAsyncResize);
        if (this._root.current) {
            this._events.on(this._root.current, 'focus', this._onFocus, true);
        }
        if (this._scrollElement) {
            this._events.on(this._scrollElement, 'scroll', this._onScroll);
            this._events.on(this._scrollElement, 'scroll', this._onAsyncScroll);
        }
    };
    List.prototype.componentWillUnmount = function () {
        this._async.dispose();
        this._events.dispose();
    };
    // tslint:disable-next-line function-name
    List.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.items !== this.props.items ||
            newProps.renderCount !== this.props.renderCount ||
            newProps.startIndex !== this.props.startIndex ||
            newProps.version !== this.props.version) {
            // We have received new items so we want to make sure that initially we only render a single window to
            // fill the currently visible rect, and then later render additional windows.
            this._resetRequiredWindows();
            this._requiredRect = null;
            this._measureVersion++;
            this._invalidatePageCache();
            this._updatePages(newProps);
        }
    };
    List.prototype.shouldComponentUpdate = function (newProps, newState) {
        var oldPages = this.state.pages;
        var newPages = newState.pages;
        var shouldComponentUpdate = false;
        // Update if the page stops scrolling
        if (!newState.isScrolling && this.state.isScrolling) {
            return true;
        }
        if (newProps.version !== this.props.version) {
            return true;
        }
        if (newProps.items === this.props.items && oldPages.length === newPages.length) {
            for (var i = 0; i < oldPages.length; i++) {
                var oldPage = oldPages[i];
                var newPage = newPages[i];
                if (oldPage.key !== newPage.key || oldPage.itemCount !== newPage.itemCount) {
                    shouldComponentUpdate = true;
                    break;
                }
            }
        }
        else {
            shouldComponentUpdate = true;
        }
        return shouldComponentUpdate;
    };
    List.prototype.forceUpdate = function () {
        this._invalidatePageCache();
        // Ensure that when the list is force updated we update the pages first before render.
        this._updateRenderRects(this.props, true);
        this._updatePages();
        this._measureVersion++;
        _super.prototype.forceUpdate.call(this);
    };
    /**
     * Get the current height the list and it's pages.
     */
    List.prototype.getTotalListHeight = function () {
        return this._surfaceRect.height;
    };
    List.prototype.render = function () {
        var _a = this.props, className = _a.className, _b = _a.role, role = _b === void 0 ? 'list' : _b;
        var _c = this.state.pages, pages = _c === void 0 ? [] : _c;
        var pageElements = [];
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        for (var _i = 0, pages_2 = pages; _i < pages_2.length; _i++) {
            var page = pages_2[_i];
            pageElements.push(this._renderPage(page));
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._root }, divProps, { role: pageElements.length > 0 ? role : undefined, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-List', className) }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._surface, className: 'ms-List-surface', role: "presentation" }, pageElements)));
    };
    List.prototype._shouldVirtualize = function (props) {
        if (props === void 0) { props = this.props; }
        var onShouldVirtualize = props.onShouldVirtualize;
        return !onShouldVirtualize || onShouldVirtualize(props);
    };
    /**
     * when props.items change or forceUpdate called, throw away cached pages
     */
    List.prototype._invalidatePageCache = function () {
        this._pageCache = {};
    };
    List.prototype._renderPage = function (page) {
        var usePageCache = this.props.usePageCache;
        var cachedPage;
        // if usePageCache is set and cached page element can be found, just return cached page
        if (usePageCache) {
            cachedPage = this._pageCache[page.key];
            if (cachedPage && cachedPage.pageElement) {
                return cachedPage.pageElement;
            }
        }
        var pageStyle = this._getPageStyle(page);
        var _a = this.props.onRenderPage, onRenderPage = _a === void 0 ? this._onRenderPage : _a;
        var pageElement = onRenderPage({
            page: page,
            className: 'ms-List-page',
            key: page.key,
            ref: page.key,
            style: pageStyle,
            role: 'presentation'
        }, this._onRenderPage);
        // cache the first page for now since it is re-rendered a lot times unnecessarily.
        // todo: a more aggresive caching mechanism is to cache pages constaining the items not changed.
        // now we re-render pages too frequently, for example, props.items increased from 30 to 60, although the
        // first 30 items did not change, we still re-rendered all of them in this props.items change.
        if (usePageCache && page.startIndex === 0) {
            this._pageCache[page.key] = {
                page: page,
                pageElement: pageElement
            };
        }
        return pageElement;
    };
    /** Generate the style object for the page. */
    List.prototype._getPageStyle = function (page) {
        var getPageStyle = this.props.getPageStyle;
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, (getPageStyle ? getPageStyle(page) : {}), (!page.items
            ? {
                height: page.height
            }
            : {}));
    };
    /** Track the last item index focused so that we ensure we keep it rendered. */
    List.prototype._onFocus = function (ev) {
        var target = ev.target;
        while (target !== this._surface.current) {
            var indexString = target.getAttribute('data-list-index');
            if (indexString) {
                this._focusedIndex = Number(indexString);
                break;
            }
            target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
        }
    };
    /**
     * Called synchronously to reset the required render range to 0 on scrolling. After async scroll has executed,
     * we will call onAsyncIdle which will reset it back to it's correct value.
     */
    List.prototype._onScroll = function () {
        if (!this.state.isScrolling) {
            this.setState({ isScrolling: true });
        }
        this._resetRequiredWindows();
        this._onScrollingDone();
    };
    List.prototype._resetRequiredWindows = function () {
        this._requiredWindowsAhead = 0;
        this._requiredWindowsBehind = 0;
    };
    /**
     * Debounced method to asynchronously update the visible region on a scroll event.
     */
    List.prototype._onAsyncScroll = function () {
        this._updateRenderRects();
        // Only update pages when the visible rect falls outside of the materialized rect.
        if (!this._materializedRect || !_isContainedWithin(this._requiredRect, this._materializedRect)) {
            this._updatePages();
        }
        else {
            // console.log('requiredRect contained in materialized', this._requiredRect, this._materializedRect);
        }
    };
    /**
     * This is an async debounced method that will try and increment the windows we render. If we can increment
     * either, we increase the amount we render and re-evaluate.
     */
    List.prototype._onAsyncIdle = function () {
        var _a = this.props, renderedWindowsAhead = _a.renderedWindowsAhead, renderedWindowsBehind = _a.renderedWindowsBehind;
        var _b = this, requiredWindowsAhead = _b._requiredWindowsAhead, requiredWindowsBehind = _b._requiredWindowsBehind;
        var windowsAhead = Math.min(renderedWindowsAhead, requiredWindowsAhead + 1);
        var windowsBehind = Math.min(renderedWindowsBehind, requiredWindowsBehind + 1);
        if (windowsAhead !== requiredWindowsAhead || windowsBehind !== requiredWindowsBehind) {
            // console.log('idling', windowsBehind, windowsAhead);
            this._requiredWindowsAhead = windowsAhead;
            this._requiredWindowsBehind = windowsBehind;
            this._updateRenderRects();
            this._updatePages();
        }
        if (renderedWindowsAhead > windowsAhead || renderedWindowsBehind > windowsBehind) {
            // Async increment on next tick.
            this._onAsyncIdle();
        }
    };
    /**
     * Function to call when the list is done scrolling.
     * This function is debounced.
     */
    List.prototype._onScrollingDone = function () {
        this.setState({ isScrolling: false });
    };
    List.prototype._onAsyncResize = function () {
        this.forceUpdate();
    };
    List.prototype._updatePages = function (props) {
        // console.log('updating pages');
        var _this = this;
        if (props === void 0) { props = this.props; }
        if (!this._requiredRect) {
            this._updateRenderRects(props);
        }
        var newListState = this._buildPages(props);
        var oldListPages = this.state.pages;
        this._notifyPageChanges(oldListPages, newListState.pages);
        this.setState(newListState, function () {
            // Multiple updates may have been queued, so the callback will reflect all of them.
            // Re-fetch the current props and states to avoid using a stale props or state captured in the closure.
            var finalProps = _this.props;
            var finalState = _this.state;
            // If we weren't provided with the page height, measure the pages
            if (!finalProps.getPageHeight) {
                // If measured version is invalid since we've updated the DOM
                var heightsChanged = _this._updatePageMeasurements(finalState.pages);
                // On first render, we should re-measure so that we don't get a visual glitch.
                if (heightsChanged) {
                    _this._materializedRect = null;
                    if (!_this._hasCompletedFirstRender) {
                        _this._hasCompletedFirstRender = true;
                        _this._updatePages(finalProps);
                    }
                    else {
                        _this._onAsyncScroll();
                    }
                }
                else {
                    // Enqueue an idle bump.
                    _this._onAsyncIdle();
                }
            }
            else {
                // Enqueue an idle bump
                _this._onAsyncIdle();
            }
            // Notify the caller that rendering the new pages has completed
            if (finalProps.onPagesUpdated) {
                finalProps.onPagesUpdated(finalState.pages);
            }
        });
    };
    /**
     * Notify consumers that the rendered pages have changed
     * @param oldPages - The old pages
     * @param newPages - The new pages
     * @param props - The props to use
     */
    List.prototype._notifyPageChanges = function (oldPages, newPages, props) {
        if (props === void 0) { props = this.props; }
        var onPageAdded = props.onPageAdded, onPageRemoved = props.onPageRemoved;
        if (onPageAdded || onPageRemoved) {
            var renderedIndexes = {};
            for (var _i = 0, oldPages_1 = oldPages; _i < oldPages_1.length; _i++) {
                var page = oldPages_1[_i];
                if (page.items) {
                    renderedIndexes[page.startIndex] = page;
                }
            }
            for (var _a = 0, newPages_1 = newPages; _a < newPages_1.length; _a++) {
                var page = newPages_1[_a];
                if (page.items) {
                    if (!renderedIndexes[page.startIndex]) {
                        this._onPageAdded(page);
                    }
                    else {
                        delete renderedIndexes[page.startIndex];
                    }
                }
            }
            for (var index in renderedIndexes) {
                if (renderedIndexes.hasOwnProperty(index)) {
                    this._onPageRemoved(renderedIndexes[index]);
                }
            }
        }
    };
    List.prototype._updatePageMeasurements = function (pages) {
        var heightChanged = false;
        // when not in virtualize mode, we render all the items without page measurement
        if (!this._shouldVirtualize()) {
            return heightChanged;
        }
        for (var i = 0; i < pages.length; i++) {
            var page = pages[i];
            if (page.items) {
                heightChanged = this._measurePage(page) || heightChanged;
            }
        }
        return heightChanged;
    };
    /**
     * Given a page, measure its dimensions, update cache.
     * @returns True if the height has changed.
     */
    List.prototype._measurePage = function (page) {
        var hasChangedHeight = false;
        var pageElement = this.refs[page.key];
        var cachedHeight = this._cachedPageHeights[page.startIndex];
        // console.log('   * measure attempt', page.startIndex, cachedHeight);
        if (pageElement && this._shouldVirtualize() && (!cachedHeight || cachedHeight.measureVersion !== this._measureVersion)) {
            var newClientRect = {
                width: pageElement.clientWidth,
                height: pageElement.clientHeight
            };
            if (newClientRect.height || newClientRect.width) {
                hasChangedHeight = page.height !== newClientRect.height;
                // console.warn(' *** expensive page measure', page.startIndex, page.height, newClientRect.height);
                page.height = newClientRect.height;
                this._cachedPageHeights[page.startIndex] = {
                    height: newClientRect.height,
                    measureVersion: this._measureVersion
                };
                this._estimatedPageHeight = Math.round((this._estimatedPageHeight * this._totalEstimates + newClientRect.height) / (this._totalEstimates + 1));
                this._totalEstimates++;
            }
        }
        return hasChangedHeight;
    };
    /** Called when a page has been added to the DOM. */
    List.prototype._onPageAdded = function (page) {
        var onPageAdded = this.props.onPageAdded;
        // console.log('page added', page.startIndex, this.state.pages.map(page => page.key).join(', '));
        if (onPageAdded) {
            onPageAdded(page);
        }
    };
    /** Called when a page has been removed from the DOM. */
    List.prototype._onPageRemoved = function (page) {
        var onPageRemoved = this.props.onPageRemoved;
        // console.log('  --- page removed', page.startIndex, this.state.pages.map(page => page.key).join(', '));
        if (onPageRemoved) {
            onPageRemoved(page);
        }
    };
    /** Build up the pages that should be rendered. */
    List.prototype._buildPages = function (props) {
        var renderCount = props.renderCount;
        var items = props.items, startIndex = props.startIndex, getPageHeight = props.getPageHeight;
        renderCount = this._getRenderCount(props);
        var materializedRect = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, EMPTY_RECT);
        var pages = [];
        var itemsPerPage = 1;
        var pageTop = 0;
        var currentSpacer = null;
        var focusedIndex = this._focusedIndex;
        var endIndex = startIndex + renderCount;
        var shouldVirtualize = this._shouldVirtualize(props);
        // First render is very important to track; when we render cells, we have no idea of estimated page height.
        // So we should default to rendering only the first page so that we can get information.
        // However if the user provides a measure function, let's just assume they know the right heights.
        var isFirstRender = this._estimatedPageHeight === 0 && !getPageHeight;
        var allowedRect = this._allowedRect;
        var _loop_1 = function (itemIndex) {
            var pageSpecification = this_1._getPageSpecification(itemIndex, allowedRect);
            var pageHeight = pageSpecification.height;
            var pageData = pageSpecification.data;
            var key = pageSpecification.key;
            itemsPerPage = pageSpecification.itemCount;
            var pageBottom = pageTop + pageHeight - 1;
            var isPageRendered = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findIndex"])(this_1.state.pages, function (page) { return !!page.items && page.startIndex === itemIndex; }) > -1;
            var isPageInAllowedRange = !allowedRect || (pageBottom >= allowedRect.top && pageTop <= allowedRect.bottom);
            var isPageInRequiredRange = !this_1._requiredRect || (pageBottom >= this_1._requiredRect.top && pageTop <= this_1._requiredRect.bottom);
            var isPageVisible = (!isFirstRender && (isPageInRequiredRange || (isPageInAllowedRange && isPageRendered))) || !shouldVirtualize;
            var isPageFocused = focusedIndex >= itemIndex && focusedIndex < itemIndex + itemsPerPage;
            var isFirstPage = itemIndex === startIndex;
            // console.log('building page', itemIndex, 'pageTop: ' + pageTop, 'inAllowed: ' +
            // isPageInAllowedRange, 'inRequired: ' + isPageInRequiredRange);
            // Only render whats visible, focused, or first page,
            // or when running in fast rendering mode (not in virtualized mode), we render all current items in pages
            if (isPageVisible || isPageFocused || isFirstPage) {
                if (currentSpacer) {
                    pages.push(currentSpacer);
                    currentSpacer = null;
                }
                var itemsInPage = Math.min(itemsPerPage, endIndex - itemIndex);
                var newPage = this_1._createPage(key, items.slice(itemIndex, itemIndex + itemsInPage), itemIndex, undefined, undefined, pageData);
                newPage.top = pageTop;
                newPage.height = pageHeight;
                if (this_1._visibleRect && this_1._visibleRect.bottom) {
                    newPage.isVisible = pageBottom >= this_1._visibleRect.top && pageTop <= this_1._visibleRect.bottom;
                }
                pages.push(newPage);
                if (isPageInRequiredRange && this_1._allowedRect) {
                    _mergeRect(materializedRect, {
                        top: pageTop,
                        bottom: pageBottom,
                        height: pageHeight,
                        left: allowedRect.left,
                        right: allowedRect.right,
                        width: allowedRect.width
                    });
                }
            }
            else {
                if (!currentSpacer) {
                    currentSpacer = this_1._createPage(SPACER_KEY_PREFIX + itemIndex, undefined, itemIndex, 0, undefined, pageData, true /*isSpacer*/);
                }
                currentSpacer.height = (currentSpacer.height || 0) + (pageBottom - pageTop) + 1;
                currentSpacer.itemCount += itemsPerPage;
            }
            pageTop += pageBottom - pageTop + 1;
            // in virtualized mode, we render need to render first page then break and measure,
            // otherwise, we render all items without measurement to make rendering fast
            if (isFirstRender && shouldVirtualize) {
                return "break";
            }
        };
        var this_1 = this;
        for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {
            var state_1 = _loop_1(itemIndex);
            if (state_1 === "break")
                break;
        }
        if (currentSpacer) {
            currentSpacer.key = SPACER_KEY_PREFIX + 'end';
            pages.push(currentSpacer);
        }
        this._materializedRect = materializedRect;
        // console.log('materialized: ', materializedRect);
        return {
            pages: pages,
            measureVersion: this._measureVersion
        };
    };
    List.prototype._getPageSpecification = function (itemIndex, visibleRect) {
        var getPageSpecification = this.props.getPageSpecification;
        if (getPageSpecification) {
            var pageData = getPageSpecification(itemIndex, visibleRect);
            var _a = pageData.itemCount, itemCount = _a === void 0 ? this._getItemCountForPage(itemIndex, visibleRect) : _a;
            var _b = pageData.height, height = _b === void 0 ? this._getPageHeight(itemIndex, visibleRect, itemCount) : _b;
            return {
                itemCount: itemCount,
                height: height,
                data: pageData.data,
                key: pageData.key
            };
        }
        else {
            var itemCount = this._getItemCountForPage(itemIndex, visibleRect);
            return {
                itemCount: itemCount,
                height: this._getPageHeight(itemIndex, visibleRect, itemCount)
            };
        }
    };
    /**
     * Get the pixel height of a give page. Will use the props getPageHeight first, and if not provided, fallback to
     * cached height, or estimated page height, or default page height.
     */
    List.prototype._getPageHeight = function (itemIndex, visibleRect, itemsPerPage) {
        if (this.props.getPageHeight) {
            return this.props.getPageHeight(itemIndex, visibleRect, itemsPerPage);
        }
        else {
            var cachedHeight = this._cachedPageHeights[itemIndex];
            return cachedHeight ? cachedHeight.height : this._estimatedPageHeight || DEFAULT_PAGE_HEIGHT;
        }
    };
    List.prototype._getItemCountForPage = function (itemIndex, visibileRect) {
        var itemsPerPage = this.props.getItemCountForPage ? this.props.getItemCountForPage(itemIndex, visibileRect) : DEFAULT_ITEMS_PER_PAGE;
        return itemsPerPage ? itemsPerPage : DEFAULT_ITEMS_PER_PAGE;
    };
    List.prototype._createPage = function (pageKey, items, startIndex, count, style, data, isSpacer) {
        if (startIndex === void 0) { startIndex = -1; }
        if (count === void 0) { count = items ? items.length : 0; }
        if (style === void 0) { style = {}; }
        pageKey = pageKey || PAGE_KEY_PREFIX + startIndex;
        var cachedPage = this._pageCache[pageKey];
        if (cachedPage && cachedPage.page) {
            return cachedPage.page;
        }
        return {
            key: pageKey,
            startIndex: startIndex,
            itemCount: count,
            items: items,
            style: style,
            top: 0,
            height: 0,
            data: data,
            isSpacer: isSpacer || false
        };
    };
    List.prototype._getRenderCount = function (props) {
        var _a = props || this.props, items = _a.items, startIndex = _a.startIndex, renderCount = _a.renderCount;
        return renderCount === undefined ? (items ? items.length - startIndex : 0) : renderCount;
    };
    /** Calculate the visible rect within the list where top: 0 and left: 0 is the top/left of the list. */
    List.prototype._updateRenderRects = function (props, forceUpdate) {
        props = props || this.props;
        var renderedWindowsAhead = props.renderedWindowsAhead, renderedWindowsBehind = props.renderedWindowsBehind;
        var pages = this.state.pages;
        // when not in virtualize mode, we render all items without measurement to optimize page rendering perf
        if (!this._shouldVirtualize(props)) {
            return;
        }
        var surfaceRect = this._surfaceRect || tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, EMPTY_RECT);
        var scrollHeight = this._scrollElement && this._scrollElement.scrollHeight;
        var scrollTop = this._scrollElement ? this._scrollElement.scrollTop : 0;
        // WARNING: EXPENSIVE CALL! We need to know the surface top relative to the window.
        // This needs to be called to recalculate when new pages should be loaded.
        // We check to see how far we've scrolled and if it's further than a third of a page we run it again.
        if (this._surface.current &&
            (forceUpdate ||
                !pages ||
                !this._surfaceRect ||
                !scrollHeight ||
                scrollHeight !== this._scrollHeight ||
                Math.abs(this._scrollTop - scrollTop) > this._estimatedPageHeight / 3)) {
            surfaceRect = this._surfaceRect = _measureSurfaceRect(this._surface.current);
            this._scrollTop = scrollTop;
        }
        // If the scroll height has changed, something in the container likely resized and
        // we should redo the page heights incase their content resized.
        if (forceUpdate || !scrollHeight || scrollHeight !== this._scrollHeight) {
            this._measureVersion++;
        }
        this._scrollHeight = scrollHeight;
        // If the surface is above the container top or below the container bottom, or if this is not the first
        // render return empty rect.
        // The first time the list gets rendered we need to calculate the rectangle. The width of the list is
        // used to calculate the width of the list items.
        var visibleTop = Math.max(0, -surfaceRect.top);
        var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(this._root.current);
        var visibleRect = {
            top: visibleTop,
            left: surfaceRect.left,
            bottom: visibleTop + win.innerHeight,
            right: surfaceRect.right,
            width: surfaceRect.width,
            height: win.innerHeight
        };
        // The required/allowed rects are adjusted versions of the visible rect.
        this._requiredRect = _expandRect(visibleRect, this._requiredWindowsBehind, this._requiredWindowsAhead);
        this._allowedRect = _expandRect(visibleRect, renderedWindowsBehind, renderedWindowsAhead);
        // store the visible rect for later use.
        this._visibleRect = visibleRect;
    };
    List.defaultProps = {
        startIndex: 0,
        onRenderCell: function (item, index, containsFocus) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, (item && item.name) || ''); },
        renderedWindowsAhead: DEFAULT_RENDERED_WINDOWS_AHEAD,
        renderedWindowsBehind: DEFAULT_RENDERED_WINDOWS_BEHIND
    };
    return List;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

function _expandRect(rect, pagesBefore, pagesAfter) {
    var top = rect.top - pagesBefore * rect.height;
    var height = rect.height + (pagesBefore + pagesAfter) * rect.height;
    return {
        top: top,
        bottom: top + height,
        height: height,
        left: rect.left,
        right: rect.right,
        width: rect.width
    };
}
function _isContainedWithin(innerRect, outerRect) {
    return (innerRect.top >= outerRect.top &&
        innerRect.left >= outerRect.left &&
        innerRect.bottom <= outerRect.bottom &&
        innerRect.right <= outerRect.right);
}
function _mergeRect(targetRect, newRect) {
    targetRect.top = newRect.top < targetRect.top || targetRect.top === -1 ? newRect.top : targetRect.top;
    targetRect.left = newRect.left < targetRect.left || targetRect.left === -1 ? newRect.left : targetRect.left;
    targetRect.bottom = newRect.bottom > targetRect.bottom || targetRect.bottom === -1 ? newRect.bottom : targetRect.bottom;
    targetRect.right = newRect.right > targetRect.right || targetRect.right === -1 ? newRect.right : targetRect.right;
    targetRect.width = targetRect.right - targetRect.left + 1;
    targetRect.height = targetRect.bottom - targetRect.top + 1;
    return targetRect;
}


/***/ }),

/***/ "./lib/components/List/List.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollToMode", function() { return ScrollToMode; });
/**
 * {@docCategory List}
 */
var ScrollToMode = {
    /**
     * Does not make any consideration to where in the viewport the item should align to.
     */
    auto: 0,
    /**
     * Attempts to scroll the list so the top of the desired item is aligned with the top of the viewport.
     */
    top: 1,
    /**
     * Attempts to scroll the list so the bottom of the desired item is aligned with the bottom of the viewport.
     */
    bottom: 2,
    /**
     * Attempts to scroll the list so the desired item is in the exact center of the viewport.
     */
    center: 3
};


/***/ }),

/***/ "./lib/components/List/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/List/List.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _List__WEBPACK_IMPORTED_MODULE_0__["List"]; });

/* harmony import */ var _List_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/List/List.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollToMode", function() { return _List_types__WEBPACK_IMPORTED_MODULE_1__["ScrollToMode"]; });





/***/ }),

/***/ "./lib/components/MarqueeSelection/MarqueeSelection.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarqueeSelectionBase", function() { return MarqueeSelectionBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
// We want to make the marquee selection start when the user drags a minimum distance. Otherwise we'd start
// the drag even if they just click an item without moving.
var MIN_DRAG_DISTANCE = 5;
/**
 * MarqueeSelection component abstracts managing a draggable rectangle which sets items selected/not selected.
 * Elements which have data-selectable-index attributes are queried and measured once to determine if they
 * fall within the bounds of the rectangle. The measure is memoized during the drag as a performance optimization
 * so if the items change sizes while dragging, that could cause incorrect results.
 */
var MarqueeSelectionBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MarqueeSelectionBase, _super);
    function MarqueeSelectionBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onMouseDown = function (ev) {
            var _a = _this.props, isEnabled = _a.isEnabled, onShouldStartSelection = _a.onShouldStartSelection;
            // Ensure the mousedown is within the boundaries of the target. If not, it may have been a click on a scrollbar.
            if (_this._isMouseEventOnScrollbar(ev)) {
                return;
            }
            if (_this._isInSelectionToggle(ev)) {
                return;
            }
            if (!_this._isTouch && isEnabled && !_this._isDragStartInSelection(ev) && (!onShouldStartSelection || onShouldStartSelection(ev))) {
                if (_this._scrollableSurface && ev.button === 0 && _this._root.current) {
                    _this._selectedIndicies = {};
                    _this._preservedIndicies = undefined;
                    _this._events.on(window, 'mousemove', _this._onAsyncMouseMove, true);
                    _this._events.on(_this._scrollableParent, 'scroll', _this._onAsyncMouseMove);
                    _this._events.on(window, 'click', _this._onMouseUp, true);
                    _this._autoScroll = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["AutoScroll"](_this._root.current);
                    _this._scrollTop = _this._scrollableSurface.scrollTop;
                    _this._rootRect = _this._root.current.getBoundingClientRect();
                    _this._onMouseMove(ev);
                }
            }
        };
        _this._onTouchStart = function (ev) {
            _this._isTouch = true;
            _this._async.setTimeout(function () {
                _this._isTouch = false;
            }, 0);
        };
        _this._onPointerDown = function (ev) {
            if (ev.pointerType === 'touch') {
                _this._isTouch = true;
                _this._async.setTimeout(function () {
                    _this._isTouch = false;
                }, 0);
            }
        };
        _this.state = {
            dragRect: undefined
        };
        return _this;
    }
    MarqueeSelectionBase.prototype.componentDidMount = function () {
        this._scrollableParent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findScrollableParent"])(this._root.current);
        this._scrollableSurface = this._scrollableParent === window ? document.body : this._scrollableParent;
        // When scroll events come from window, we need to read scrollTop values from the body.
        var hitTarget = this.props.isDraggingConstrainedToRoot ? this._root.current : this._scrollableSurface;
        this._events.on(hitTarget, 'mousedown', this._onMouseDown);
        this._events.on(hitTarget, 'touchstart', this._onTouchStart, true);
        this._events.on(hitTarget, 'pointerdown', this._onPointerDown, true);
    };
    MarqueeSelectionBase.prototype.componentWillUnmount = function () {
        if (this._autoScroll) {
            this._autoScroll.dispose();
        }
    };
    MarqueeSelectionBase.prototype.render = function () {
        var _a = this.props, rootProps = _a.rootProps, children = _a.children, theme = _a.theme, className = _a.className, styles = _a.styles;
        var dragRect = this.state.dragRect;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, rootProps, { className: classNames.root, ref: this._root }),
            children,
            dragRect && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.dragMask }),
            dragRect && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.box, style: dragRect },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.boxFill })))));
    };
    /** Determine if the mouse event occured on a scrollbar of the target element. */
    MarqueeSelectionBase.prototype._isMouseEventOnScrollbar = function (ev) {
        var targetElement = ev.target;
        var targetScrollbarWidth = targetElement.offsetWidth - targetElement.clientWidth;
        if (targetScrollbarWidth) {
            var targetRect = targetElement.getBoundingClientRect();
            // Check vertical scroll
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()) {
                if (ev.clientX < targetRect.left + targetScrollbarWidth) {
                    return true;
                }
            }
            else {
                if (ev.clientX > targetRect.left + targetElement.clientWidth) {
                    return true;
                }
            }
            // Check horizontal scroll
            if (ev.clientY > targetRect.top + targetElement.clientHeight) {
                return true;
            }
        }
        return false;
    };
    MarqueeSelectionBase.prototype._getRootRect = function () {
        return {
            left: this._rootRect.left,
            top: this._rootRect.top + (this._scrollTop - this._scrollableSurface.scrollTop),
            width: this._rootRect.width,
            height: this._rootRect.height
        };
    };
    MarqueeSelectionBase.prototype._onAsyncMouseMove = function (ev) {
        var _this = this;
        this._async.requestAnimationFrame(function () {
            _this._onMouseMove(ev);
        });
        ev.stopPropagation();
        ev.preventDefault();
    };
    MarqueeSelectionBase.prototype._onMouseMove = function (ev) {
        if (!this._autoScroll) {
            return;
        }
        if (ev.clientX !== undefined) {
            this._lastMouseEvent = ev;
        }
        var rootRect = this._getRootRect();
        var currentPoint = { x: ev.clientX - rootRect.left, y: ev.clientY - rootRect.top };
        if (!this._dragOrigin) {
            this._dragOrigin = currentPoint;
        }
        if (ev.buttons !== undefined && ev.buttons === 0) {
            this._onMouseUp(ev);
        }
        else {
            if (this.state.dragRect || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDistanceBetweenPoints"])(this._dragOrigin, currentPoint) > MIN_DRAG_DISTANCE) {
                if (!this.state.dragRect) {
                    var selection = this.props.selection;
                    if (!ev.shiftKey) {
                        selection.setAllSelected(false);
                    }
                    this._preservedIndicies = selection && selection.getSelectedIndices && selection.getSelectedIndices();
                }
                // We need to constrain the current point to the rootRect boundaries.
                var constrainedPoint = this.props.isDraggingConstrainedToRoot
                    ? {
                        x: Math.max(0, Math.min(rootRect.width, this._lastMouseEvent.clientX - rootRect.left)),
                        y: Math.max(0, Math.min(rootRect.height, this._lastMouseEvent.clientY - rootRect.top))
                    }
                    : {
                        x: this._lastMouseEvent.clientX - rootRect.left,
                        y: this._lastMouseEvent.clientY - rootRect.top
                    };
                var dragRect = {
                    left: Math.min(this._dragOrigin.x, constrainedPoint.x),
                    top: Math.min(this._dragOrigin.y, constrainedPoint.y),
                    width: Math.abs(constrainedPoint.x - this._dragOrigin.x),
                    height: Math.abs(constrainedPoint.y - this._dragOrigin.y)
                };
                this._evaluateSelection(dragRect, rootRect);
                this.setState({ dragRect: dragRect });
            }
        }
        return false;
    };
    MarqueeSelectionBase.prototype._onMouseUp = function (ev) {
        this._events.off(window);
        this._events.off(this._scrollableParent, 'scroll');
        if (this._autoScroll) {
            this._autoScroll.dispose();
        }
        this._autoScroll = this._dragOrigin = this._lastMouseEvent = this._selectedIndicies = this._itemRectCache = undefined;
        if (this.state.dragRect) {
            this.setState({
                dragRect: undefined
            });
            ev.preventDefault();
            ev.stopPropagation();
        }
    };
    MarqueeSelectionBase.prototype._isPointInRectangle = function (rectangle, point) {
        return rectangle.top < point.y && rectangle.bottom > point.y && rectangle.left < point.x && rectangle.right > point.x;
    };
    /**
     * We do not want to start the marquee if we're trying to marquee
     * from within an existing marquee selection.
     */
    MarqueeSelectionBase.prototype._isDragStartInSelection = function (ev) {
        var selection = this.props.selection;
        if (!this._root.current || (selection && selection.getSelectedCount() === 0)) {
            return false;
        }
        var allElements = this._root.current.querySelectorAll('[data-selection-index]');
        for (var i = 0; i < allElements.length; i++) {
            var element = allElements[i];
            var index = Number(element.getAttribute('data-selection-index'));
            if (selection.isIndexSelected(index)) {
                var itemRect = element.getBoundingClientRect();
                if (this._isPointInRectangle(itemRect, { x: ev.clientX, y: ev.clientY })) {
                    return true;
                }
            }
        }
        return false;
    };
    MarqueeSelectionBase.prototype._isInSelectionToggle = function (ev) {
        var element = ev.target;
        while (element && element !== this._root.current) {
            if (element.getAttribute('data-selection-toggle') === 'true') {
                return true;
            }
            element = element.parentElement;
        }
        return false;
    };
    MarqueeSelectionBase.prototype._evaluateSelection = function (dragRect, rootRect) {
        // Break early if we don't need to evaluate.
        if (!dragRect || !this._root.current) {
            return;
        }
        var selection = this.props.selection;
        var allElements = this._root.current.querySelectorAll('[data-selection-index]');
        if (!this._itemRectCache) {
            this._itemRectCache = {};
        }
        for (var i = 0; i < allElements.length; i++) {
            var element = allElements[i];
            var index = element.getAttribute('data-selection-index');
            // Pull the memoized rectangle for the item, or the get the rect and memoize.
            var itemRect = this._itemRectCache[index];
            if (!itemRect) {
                itemRect = element.getBoundingClientRect();
                // Normalize the item rect to the dragRect coordinates.
                itemRect = {
                    left: itemRect.left - rootRect.left,
                    top: itemRect.top - rootRect.top,
                    width: itemRect.width,
                    height: itemRect.height,
                    right: itemRect.left - rootRect.left + itemRect.width,
                    bottom: itemRect.top - rootRect.top + itemRect.height
                };
                if (itemRect.width > 0 && itemRect.height > 0) {
                    this._itemRectCache[index] = itemRect;
                }
            }
            if (itemRect.top < dragRect.top + dragRect.height &&
                itemRect.bottom > dragRect.top &&
                itemRect.left < dragRect.left + dragRect.width &&
                itemRect.right > dragRect.left) {
                this._selectedIndicies[index] = true;
            }
            else {
                delete this._selectedIndicies[index];
            }
        }
        // set previousSelectedIndices to be all of the selected indices from last time
        var previousSelectedIndices = this._allSelectedIndices || {};
        this._allSelectedIndices = {};
        // set all indices that are supposed to be selected in _allSelectedIndices
        for (var index in this._selectedIndicies) {
            if (this._selectedIndicies.hasOwnProperty(index)) {
                this._allSelectedIndices[index] = true;
            }
        }
        if (this._preservedIndicies) {
            for (var _i = 0, _a = this._preservedIndicies; _i < _a.length; _i++) {
                var index = _a[_i];
                this._allSelectedIndices[index] = true;
            }
        }
        // check if needs to update selection, only when current _allSelectedIndices
        // is different than previousSelectedIndices
        var needToUpdate = false;
        for (var index in this._allSelectedIndices) {
            if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {
                needToUpdate = true;
                break;
            }
        }
        if (!needToUpdate) {
            for (var index in previousSelectedIndices) {
                if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {
                    needToUpdate = true;
                    break;
                }
            }
        }
        // only update selection when needed
        if (needToUpdate) {
            // Stop change events, clear selection to re-populate.
            selection.setChangeEvents(false);
            selection.setAllSelected(false);
            for (var _b = 0, _c = Object.keys(this._allSelectedIndices); _b < _c.length; _b++) {
                var index = _c[_b];
                selection.setIndexSelected(Number(index), true, false);
            }
            selection.setChangeEvents(true);
        }
    };
    MarqueeSelectionBase.defaultProps = {
        rootTagName: 'div',
        rootProps: {},
        isEnabled: true
    };
    return MarqueeSelectionBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/MarqueeSelection/MarqueeSelection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MarqueeSelection", function() { return MarqueeSelection; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _MarqueeSelection_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/MarqueeSelection/MarqueeSelection.base.js");
/* harmony import */ var _MarqueeSelection_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/MarqueeSelection/MarqueeSelection.styles.js");



var MarqueeSelection = 
// TODO: MarqueeSelectionBase defaultProps are not lining up with IMarqueeSelectionProps, so we have to be explicit with styled here.
// defaultProps.rootTagName doesn't appear to be used anywhere and defaultProps.rootProps is not in IMarqueeSelectionProps.
Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_MarqueeSelection_base__WEBPACK_IMPORTED_MODULE_1__["MarqueeSelectionBase"], _MarqueeSelection_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'MarqueeSelection'
});


/***/ }),

/***/ "./lib/components/MarqueeSelection/MarqueeSelection.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getStyles = function (props) {
    var _a, _b, _c;
    var theme = props.theme, className = props.className;
    var palette = theme.palette;
    return {
        root: [
            className,
            {
                position: 'relative',
                cursor: 'default'
            }
        ],
        dragMask: [
            {
                position: 'absolute',
                background: 'rgba(255, 0, 0, 0)',
                left: 0,
                top: 0,
                right: 0,
                bottom: 0,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        background: 'none',
                        backgroundColor: 'transparent'
                    },
                    _a)
            }
        ],
        box: [
            {
                position: 'absolute',
                boxSizing: 'border-box',
                border: "1px solid " + palette.themePrimary,
                pointerEvents: 'none',
                zIndex: 10,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'Highlight'
                    },
                    _b)
            }
        ],
        boxFill: [
            {
                position: 'absolute',
                boxSizing: 'border-box',
                backgroundColor: palette.themePrimary,
                opacity: 0.1,
                left: 0,
                top: 0,
                right: 0,
                bottom: 0,
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        background: 'none',
                        backgroundColor: 'transparent'
                    },
                    _c)
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/MessageBar/MessageBar.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBarBase", function() { return MessageBarBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/MessageBar/MessageBar.types.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("../utilities/lib/index.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var MessageBarBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MessageBarBase, _super);
    function MessageBarBase(props) {
        var _a;
        var _this = _super.call(this, props) || this;
        _this.ICON_MAP = (_a = {},
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].info] = 'Info',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].warning] = 'Info',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].error] = 'ErrorBadge',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].blocked] = 'Blocked2',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].remove] = 'Blocked',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].severeWarning] = 'Warning',
            _a[_MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].success] = 'Completed',
            _a);
        _this._getRegionProps = function () {
            var hasActions = !!_this._getActionsDiv() || !!_this._getDismissDiv();
            var regionProps = {
                'aria-describedby': _this.state.labelId,
                role: 'region'
            };
            return hasActions ? regionProps : {};
        };
        _this._onClick = function (ev) {
            _this.setState({ expandSingleLine: !_this.state.expandSingleLine });
        };
        _this.state = {
            labelId: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('MessageBar'),
            showContent: false,
            expandSingleLine: false
        };
        return _this;
    }
    MessageBarBase.prototype.render = function () {
        var isMultiline = this.props.isMultiline;
        this._classNames = this._getClassNames();
        return isMultiline ? this._renderMultiLine() : this._renderSingleLine();
    };
    MessageBarBase.prototype._getActionsDiv = function () {
        if (this.props.actions) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.actions }, this.props.actions);
        }
        return null;
    };
    MessageBarBase.prototype._getDismissDiv = function () {
        var _a = this.props, onDismiss = _a.onDismiss, dismissIconProps = _a.dismissIconProps;
        if (onDismiss) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["IconButton"], { disabled: false, className: this._classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, ariaLabel: this.props.dismissButtonAriaLabel }));
        }
        return null;
    };
    MessageBarBase.prototype._getDismissSingleLine = function () {
        if (this.props.onDismiss) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.dismissSingleLine }, this._getDismissDiv());
        }
        return null;
    };
    MessageBarBase.prototype._getExpandSingleLine = function () {
        if (!this.props.actions && this.props.truncated) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.expandSingleLine },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["IconButton"], { disabled: false, className: this._classNames.expand, onClick: this._onClick, iconProps: { iconName: this.state.expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' }, ariaLabel: this.props.overflowButtonAriaLabel, "aria-expanded": this.state.expandSingleLine })));
        }
        return null;
    };
    MessageBarBase.prototype._getIconSpan = function () {
        var messageBarIconProps = this.props.messageBarIconProps;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.iconContainer, "aria-hidden": true }, messageBarIconProps ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, messageBarIconProps, { className: Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_6__["css"])(this._classNames.icon, messageBarIconProps.className) }))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], { iconName: this.ICON_MAP[this.props.messageBarType], className: this._classNames.icon }))));
    };
    MessageBarBase.prototype._renderMultiLine = function () {
        var theme = this.props.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: { background: theme.semanticColors.bodyBackground } },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.root }, this._getRegionProps()),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.content },
                    this._getIconSpan(),
                    this._renderInnerText(),
                    this._getDismissDiv()),
                this._getActionsDiv())));
    };
    MessageBarBase.prototype._renderSingleLine = function () {
        var theme = this.props.theme;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: { background: theme.semanticColors.bodyBackground } },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.root }, this._getRegionProps()),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.content },
                    this._getIconSpan(),
                    this._renderInnerText(),
                    this._getExpandSingleLine(),
                    this._getActionsDiv(),
                    this._getDismissSingleLine()))));
    };
    MessageBarBase.prototype._renderInnerText = function () {
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["htmlElementProperties"], ['className']);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.text, id: this.state.labelId, role: "status", "aria-live": this._getAnnouncementPriority() },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.innerText }, nativeProps),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Utilities__WEBPACK_IMPORTED_MODULE_2__["DelayedRender"], null,
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", null, this.props.children)))));
    };
    MessageBarBase.prototype._getClassNames = function () {
        var _a = this.props, theme = _a.theme, className = _a.className, messageBarType = _a.messageBarType, onDismiss = _a.onDismiss, actions = _a.actions, truncated = _a.truncated, isMultiline = _a.isMultiline;
        var expandSingleLine = this.state.expandSingleLine;
        return getClassNames(this.props.styles, {
            theme: theme,
            messageBarType: messageBarType || _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].info,
            onDismiss: onDismiss !== undefined,
            actions: actions !== undefined,
            truncated: truncated,
            isMultiline: isMultiline,
            expandSingleLine: expandSingleLine,
            className: className
        });
    };
    MessageBarBase.prototype._getAnnouncementPriority = function () {
        switch (this.props.messageBarType) {
            case _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].blocked:
            case _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].error:
            case _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].severeWarning:
                return 'assertive';
        }
        return 'polite';
    };
    MessageBarBase.defaultProps = {
        messageBarType: _MessageBar_types__WEBPACK_IMPORTED_MODULE_5__["MessageBarType"].info,
        onDismiss: undefined,
        isMultiline: true
    };
    return MessageBarBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/MessageBar/MessageBar.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBar", function() { return MessageBar; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _MessageBar_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/MessageBar/MessageBar.base.js");
/* harmony import */ var _MessageBar_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/MessageBar/MessageBar.styles.js");



var MessageBar = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_MessageBar_base__WEBPACK_IMPORTED_MODULE_1__["MessageBarBase"], _MessageBar_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'MessageBar'
});


/***/ }),

/***/ "./lib/components/MessageBar/MessageBar.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/MessageBar/MessageBar.types.js");



var GlobalClassNames = {
    root: 'ms-MessageBar',
    error: 'ms-MessageBar--error',
    blocked: 'ms-MessageBar--blocked',
    severeWarning: 'ms-MessageBar--severeWarning',
    success: 'ms-MessageBar--success',
    warning: 'ms-MessageBar--warning',
    multiline: 'ms-MessageBar-multiline',
    singleline: 'ms-MessageBar-singleline',
    dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',
    expandingSingleLine: 'ms-MessageBar-expandingSingleLine',
    content: 'ms-MessageBar-content',
    iconContainer: 'ms-MessageBar-icon',
    text: 'ms-MessageBar-text',
    innerText: 'ms-MessageBar-innerText',
    dismissSingleLine: 'ms-MessageBar-dismissSingleLine',
    expandSingleLine: 'ms-MessageBar-expandSingleLine',
    dismissal: 'ms-MessageBar-dismissal',
    expand: 'ms-MessageBar-expand',
    actions: 'ms-MessageBar-actions',
    actionsSingleline: 'ms-MessageBar-actionsSingleLine'
};
// Returns the background color of the MessageBar root element based on the type of MessageBar.
var getRootBackground = function (messageBarType, palette, semanticColors) {
    switch (messageBarType) {
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].error:
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].blocked:
            return semanticColors.errorBackground;
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].severeWarning:
            return semanticColors.blockingBackground;
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].success:
            return semanticColors.successBackground;
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].warning:
            return semanticColors.warningBackground;
    }
    return palette.neutralLighter;
};
// Returns the icon color based on the type of MessageBar.
var getIconColor = function (messageBarType, palette, semanticColors) {
    switch (messageBarType) {
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].error:
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].blocked:
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].severeWarning:
            return semanticColors.errorText;
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].success:
            return palette.green;
        case _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].warning:
            return semanticColors.warningText;
    }
    return palette.neutralSecondary;
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var theme = props.theme, className = props.className, messageBarType = props.messageBarType, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine;
    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;
    var SmallScreenSelector = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getScreenSelector"])(0, _Styling__WEBPACK_IMPORTED_MODULE_1__["ScreenWidthMaxSmall"]);
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(GlobalClassNames, theme);
    var dismissalAndExpandIconStyle = {
        fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].xSmall,
        height: 10,
        lineHeight: '10px',
        color: palette.neutralPrimary,
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                MsHighContrastAdjust: 'none',
                color: 'Window'
            },
            _a)
    };
    var dismissalAndExpandStyle = [
        Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, {
            inset: 1,
            highContrastStyle: {
                outlineOffset: '-4px',
                outlineColor: 'Window'
            },
            borderColor: 'transparent'
        }),
        {
            flexShrink: 0,
            width: 32,
            height: 32,
            padding: '8px 12px',
            selectors: {
                '& .ms-Button-icon': dismissalAndExpandIconStyle,
                ':hover': {
                    backgroundColor: 'transparent'
                },
                ':active': {
                    backgroundColor: 'transparent'
                }
            }
        }
    ];
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            messageBarType === _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].error && classNames.error,
            messageBarType === _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].blocked && classNames.blocked,
            messageBarType === _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].severeWarning && classNames.severeWarning,
            messageBarType === _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].success && classNames.success,
            messageBarType === _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"].warning && classNames.warning,
            isMultiline ? classNames.multiline : classNames.singleline,
            !isMultiline && onDismiss && classNames.dismissalSingleLine,
            !isMultiline && truncated && classNames.expandingSingleLine,
            {
                background: getRootBackground(messageBarType, palette, semanticColors),
                color: palette.neutralPrimary,
                minHeight: 32,
                width: '100%',
                display: 'flex',
                wordBreak: 'break-word',
                selectors: (_b = {
                        '& .ms-Link': tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ color: palette.themeDark }, fonts.small)
                    },
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        background: 'WindowText',
                        color: 'Window'
                    },
                    _b)
            },
            isMultiline && {
                flexDirection: 'column'
            },
            className
        ],
        content: [
            classNames.content,
            {
                display: 'flex',
                width: '100%',
                lineHeight: 'normal'
            }
        ],
        iconContainer: [
            classNames.iconContainer,
            {
                fontSize: _Styling__WEBPACK_IMPORTED_MODULE_1__["IconFontSizes"].medium,
                minWidth: 16,
                minHeight: 16,
                display: 'flex',
                flexShrink: 0,
                margin: '8px 0 8px 12px'
            }
        ],
        icon: {
            color: getIconColor(messageBarType, palette, semanticColors),
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                    MsHighContrastAdjust: 'none',
                    color: 'Window'
                },
                _c)
        },
        text: [
            classNames.text,
            tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small, { selectors: (_d = {},
                    _d[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        MsHighContrastAdjust: 'none'
                    },
                    _d) }),
            !onDismiss && {
                marginRight: 12
            }
        ],
        innerText: [
            classNames.innerText,
            {
                lineHeight: 16,
                selectors: {
                    '& span a': {
                        paddingLeft: 4
                    }
                }
            },
            truncated && {
                overflow: 'visible',
                whiteSpace: 'pre-wrap'
            },
            !isMultiline && {
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap'
            },
            !isMultiline &&
                !truncated && {
                selectors: (_e = {},
                    _e[SmallScreenSelector] = {
                        overflow: 'visible',
                        whiteSpace: 'pre-wrap'
                    },
                    _e)
            },
            expandSingleLine && {
                overflow: 'visible',
                whiteSpace: 'pre-wrap'
            }
        ],
        dismissSingleLine: [classNames.dismissSingleLine],
        expandSingleLine: [classNames.expandSingleLine],
        dismissal: [classNames.dismissal, dismissalAndExpandStyle],
        expand: [classNames.expand, dismissalAndExpandStyle],
        actions: [
            isMultiline ? classNames.actions : classNames.actionsSingleline,
            {
                display: 'flex',
                flexGrow: 0,
                flexShrink: 0,
                flexBasis: 'auto',
                flexDirection: 'row-reverse',
                alignItems: 'center',
                margin: '0 12px 0 8px',
                selectors: {
                    '& button:nth-child(n+2)': {
                        marginLeft: 8
                    }
                }
            },
            isMultiline && {
                marginBottom: 8
            },
            onDismiss &&
                !isMultiline && {
                marginRight: 0
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/MessageBar/MessageBar.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageBarType", function() { return MessageBarType; });
/**
 * {@docCategory MessageBar}
 */
var MessageBarType;
(function (MessageBarType) {
    /** Info styled MessageBar */
    MessageBarType[MessageBarType["info"] = 0] = "info";
    /** Error styled MessageBar */
    MessageBarType[MessageBarType["error"] = 1] = "error";
    /** Blocked styled MessageBar */
    MessageBarType[MessageBarType["blocked"] = 2] = "blocked";
    /** SevereWarning styled MessageBar */
    MessageBarType[MessageBarType["severeWarning"] = 3] = "severeWarning";
    /** Success styled MessageBar */
    MessageBarType[MessageBarType["success"] = 4] = "success";
    /** Warning styled MessageBar */
    MessageBarType[MessageBarType["warning"] = 5] = "warning";
    /**
     * Deprecated at v0.48.0, to be removed at \>= v1.0.0. Use `blocked` instead.
     * @deprecated Use `blocked` instead.
     */
    MessageBarType[MessageBarType["remove"] = 90000] = "remove";
})(MessageBarType || (MessageBarType = {}));


/***/ }),

/***/ "./lib/components/MessageBar/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _MessageBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/MessageBar/MessageBar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBar", function() { return _MessageBar__WEBPACK_IMPORTED_MODULE_0__["MessageBar"]; });

/* harmony import */ var _MessageBar_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/MessageBar/MessageBar.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarBase", function() { return _MessageBar_base__WEBPACK_IMPORTED_MODULE_1__["MessageBarBase"]; });

/* harmony import */ var _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/MessageBar/MessageBar.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarType", function() { return _MessageBar_types__WEBPACK_IMPORTED_MODULE_2__["MessageBarType"]; });






/***/ }),

/***/ "./lib/components/Modal/Modal.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalBase", function() { return ModalBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/FocusTrapZone/index.js");
/* harmony import */ var _Modal_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Modal/Modal.styles.js");
/* harmony import */ var _Overlay__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Overlay.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Layer.js");
/* harmony import */ var _Popup_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Popup/index.js");
/* harmony import */ var _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/decorators/withResponsiveMode.js");
/* harmony import */ var _Callout_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/Callout/index.js");
/* harmony import */ var _Icon_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/Icon/index.js");
/* harmony import */ var _utilities_DraggableZone_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/utilities/DraggableZone/index.js");












// @TODO - need to change this to a panel whenever the breakpoint is under medium (verify the spec)
var DefaultLayerProps = {
    eventBubblingEnabled: false
};
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ModalBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ModalBase, _super);
    function ModalBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusTrapZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // Allow the user to scroll within the modal but not on the body
        _this._allowScrollOnModal = function (elt) {
            if (elt) {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["allowScrollOnElement"])(elt, _this._events);
            }
            else {
                _this._events.off(_this._scrollableContent);
            }
            _this._scrollableContent = elt;
        };
        _this._onModalContextMenuClose = function () {
            _this.setState({ isModalMenuOpen: false });
        };
        _this._onModalClose = function () {
            _this._lastSetX = 0;
            _this._lastSetY = 0;
            _this.setState({
                isModalMenuOpen: false,
                isInKeyboardMoveMode: false,
                isOpen: false,
                x: 0,
                y: 0
            });
            if (_this.props.dragOptions) {
                _this._events.off(window, 'keyup', _this._onKeyUp, true /* useCapture */);
            }
            // Call the onDismiss callback
            if (_this.props.onDismissed) {
                _this.props.onDismissed();
            }
        };
        _this._onDragStart = function () {
            _this.setState({ isModalMenuOpen: false, isInKeyboardMoveMode: false });
        };
        _this._onDrag = function (_, ui) {
            var _a = _this.state, x = _a.x, y = _a.y;
            _this.setState({ x: x + ui.delta.x, y: y + ui.delta.y });
        };
        _this._onDragStop = function () {
            _this.focus();
        };
        _this._onKeyUp = function (event) {
            // Need to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:
            // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
            // Otherwise it would continue to fire a click even if the event was cancelled
            // during mouseDown.
            if (event.altKey && event.ctrlKey && event.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                // Since this is a global handler, we should make sure the target is within the dialog
                // before opening the dropdown
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(_this._scrollableContent, event.target)) {
                    _this.setState({ isModalMenuOpen: !_this.state.isModalMenuOpen });
                    event.preventDefault();
                    event.stopPropagation();
                }
            }
        };
        // We need a global onKeyDown event when we are in the move mode so that we can
        // handle the key presses and the components inside the modal do not get the events
        _this._onKeyDown = function (event) {
            if (event.altKey && event.ctrlKey && event.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                // CTRL + ALT + SPACE is handled during keyUp
                event.preventDefault();
                event.stopPropagation();
                return;
            }
            if (_this.state.isModalMenuOpen && (event.altKey || event.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape)) {
                _this.setState({ isModalMenuOpen: false });
            }
            if (_this.state.isInKeyboardMoveMode && (event.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape || event.keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter)) {
                _this.setState({ isInKeyboardMoveMode: false });
                event.preventDefault();
                event.stopPropagation();
            }
            if (_this.state.isInKeyboardMoveMode) {
                var handledEvent = true;
                var delta = _this._getMoveDelta(event);
                switch (event.keyCode) {
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                        _this.setState({ x: _this._lastSetX, y: _this._lastSetY });
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter: {
                        _this._lastSetX = 0;
                        _this._lastSetY = 0;
                        _this.setState({ isInKeyboardMoveMode: false });
                        break;
                    }
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up: {
                        _this.setState({
                            y: _this.state.y - delta
                        });
                        break;
                    }
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down: {
                        _this.setState({
                            y: _this.state.y + delta
                        });
                        break;
                    }
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left: {
                        _this.setState({
                            x: _this.state.x - delta
                        });
                        break;
                    }
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right: {
                        _this.setState({
                            x: _this.state.x + delta
                        });
                        break;
                    }
                    default: {
                        handledEvent = false;
                    }
                }
                if (handledEvent) {
                    event.preventDefault();
                    event.stopPropagation();
                }
            }
        };
        _this._onEnterKeyboardMoveMode = function () {
            _this._lastSetX = _this.state.x;
            _this._lastSetY = _this.state.y;
            _this.setState({ isInKeyboardMoveMode: true, isModalMenuOpen: false });
            _this._events.on(window, 'keydown', _this._onKeyDown, true /* useCapture */);
        };
        _this._onExitKeyboardMoveMode = function () {
            _this._lastSetX = 0;
            _this._lastSetY = 0;
            _this.setState({ isInKeyboardMoveMode: false });
            _this._events.off(window, 'keydown', _this._onKeyDown, true /* useCapture */);
        };
        _this.state = {
            id: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Modal'),
            isOpen: props.isOpen,
            isVisible: props.isOpen,
            hasBeenOpened: props.isOpen,
            x: 0,
            y: 0
        };
        _this._lastSetX = 0;
        _this._lastSetY = 0;
        _this._warnDeprecations({
            onLayerDidMount: 'layerProps.onLayerDidMount'
        });
        return _this;
    }
    // tslint:disable-next-line function-name
    ModalBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        clearTimeout(this._onModalCloseTimer);
        // Opening the dialog
        if (newProps.isOpen) {
            if (!this.state.isOpen) {
                // First Open
                this.setState({
                    isOpen: true
                });
                // Add a keyUp handler for all key up events when the dialog is open
                if (newProps.dragOptions) {
                    this._events.on(window, 'keyup', this._onKeyUp, true /* useCapture */);
                }
            }
            else {
                // Modal has been opened
                // Reopen during closing
                this.setState({
                    hasBeenOpened: true,
                    isVisible: true
                });
                if (newProps.topOffsetFixed) {
                    var dialogMain = document.getElementsByClassName('ms-Dialog-main');
                    var modalRectangle = void 0;
                    if (dialogMain.length > 0) {
                        modalRectangle = dialogMain[0].getBoundingClientRect();
                        this.setState({
                            modalRectangleTop: modalRectangle.top
                        });
                    }
                }
            }
        }
        // Closing the dialog
        if (!newProps.isOpen && this.state.isOpen) {
            this._onModalCloseTimer = this._async.setTimeout(this._onModalClose, parseFloat(_Modal_styles__WEBPACK_IMPORTED_MODULE_4__["animationDuration"]) * 1000);
            this.setState({
                isVisible: false
            });
        }
    };
    ModalBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        if (!prevProps.isOpen && !prevState.isVisible) {
            this.setState({
                isVisible: true
            });
        }
    };
    ModalBase.prototype.render = function () {
        var _a = this.props, className = _a.className, containerClassName = _a.containerClassName, scrollableContentClassName = _a.scrollableContentClassName, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, firstFocusableSelector = _a.firstFocusableSelector, forceFocusInsideTrap = _a.forceFocusInsideTrap, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isClickableOutsideFocusTrap = _a.isClickableOutsideFocusTrap, isDarkOverlay = _a.isDarkOverlay, onDismiss = _a.onDismiss, layerProps = _a.layerProps, overlay = _a.overlay, responsiveMode = _a.responsiveMode, titleAriaId = _a.titleAriaId, styles = _a.styles, subtitleAriaId = _a.subtitleAriaId, theme = _a.theme, topOffsetFixed = _a.topOffsetFixed, onLayerDidMount = _a.onLayerDidMount, isModeless = _a.isModeless, dragOptions = _a.dragOptions;
        var _b = this.state, isOpen = _b.isOpen, isVisible = _b.isVisible, hasBeenOpened = _b.hasBeenOpened, modalRectangleTop = _b.modalRectangleTop, x = _b.x, y = _b.y, isInKeyboardMoveMode = _b.isInKeyboardMoveMode;
        if (!isOpen) {
            return null;
        }
        var layerClassName = layerProps === undefined ? '' : layerProps.className;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            containerClassName: containerClassName,
            scrollableContentClassName: scrollableContentClassName,
            isOpen: isOpen,
            isVisible: isVisible,
            hasBeenOpened: hasBeenOpened,
            modalRectangleTop: modalRectangleTop,
            topOffsetFixed: topOffsetFixed,
            isModeless: isModeless,
            layerClassName: layerClassName,
            isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector
        });
        var mergedLayerProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, DefaultLayerProps, this.props.layerProps, { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: isModeless, className: classNames.layer });
        var modalContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_3__["FocusTrapZone"], { componentRef: this._focusTrapZone, className: classNames.main, elementToFocusOnDismiss: elementToFocusOnDismiss, isClickableOutsideFocusTrap: isModeless || isClickableOutsideFocusTrap || !isBlocking, ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: isModeless ? !isModeless : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, focusPreviouslyFocusedInnerElement: true, onBlur: isInKeyboardMoveMode ? this._onExitKeyboardMoveMode : undefined },
            dragOptions && isInKeyboardMoveMode && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon_index__WEBPACK_IMPORTED_MODULE_10__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, dragOptions.keyboardMoveIconProps))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon_index__WEBPACK_IMPORTED_MODULE_10__["Icon"], { iconName: "move", className: classNames.keyboardMoveIcon })))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._allowScrollOnModal, className: classNames.scrollableContent, "data-is-scrollable": true },
                dragOptions && this.state.isModalMenuOpen && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](dragOptions.menu, { items: [
                        { key: 'move', text: dragOptions.moveMenuItemText, onClick: this._onEnterKeyboardMoveMode },
                        { key: 'close', text: dragOptions.closeMenuItemText, onClick: this._onModalClose }
                    ], onDismiss: this._onModalContextMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: _Callout_index__WEBPACK_IMPORTED_MODULE_9__["DirectionalHint"].topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: this._scrollableContent })),
                this.props.children)));
        // @temp tuatology - Will adjust this to be a panel at certain breakpoints
        if (responsiveMode >= _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_8__["ResponsiveMode"].small) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_6__["Layer"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, mergedLayerProps),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Popup_index__WEBPACK_IMPORTED_MODULE_7__["Popup"], { role: isModeless || !isBlocking ? 'dialog' : 'alertdialog', "aria-modal": !isModeless, ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
                        !isModeless && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Overlay__WEBPACK_IMPORTED_MODULE_5__["Overlay"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss }, overlay)),
                        dragOptions ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_utilities_DraggableZone_index__WEBPACK_IMPORTED_MODULE_11__["DraggableZone"], { handleSelector: dragOptions.dragHandleSelector || "." + classNames.main.split(' ')[0], preventDragSelector: "button", onStart: this._onDragStart, onDragChange: this._onDrag, onStop: this._onDragStop, position: { x: x, y: y } }, modalContent)) : (modalContent)))));
        }
        return null;
    };
    ModalBase.prototype.focus = function () {
        if (this._focusTrapZone.current) {
            this._focusTrapZone.current.focus();
        }
    };
    ModalBase.prototype._getMoveDelta = function (event) {
        var delta = 10;
        if (event.shiftKey) {
            if (!event.ctrlKey) {
                delta = 50;
            }
        }
        else if (event.ctrlKey) {
            delta = 1;
        }
        return delta;
    };
    ModalBase.defaultProps = {
        isOpen: false,
        isDarkOverlay: true,
        isBlocking: false,
        className: '',
        containerClassName: ''
    };
    ModalBase = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        _utilities_decorators_withResponsiveMode__WEBPACK_IMPORTED_MODULE_8__["withResponsiveMode"]
    ], ModalBase);
    return ModalBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Modal/Modal.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return Modal; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Modal_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Modal/Modal.base.js");
/* harmony import */ var _Modal_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Modal/Modal.styles.js");



var Modal = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Modal_base__WEBPACK_IMPORTED_MODULE_1__["ModalBase"], _Modal_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Modal'
});


/***/ }),

/***/ "./lib/components/Modal/Modal.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationDuration", function() { return animationDuration; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var animationDuration = _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2;
var globalClassNames = {
    root: 'ms-Modal',
    main: 'ms-Dialog-main',
    scrollableContent: 'ms-Modal-scrollableContent',
    isOpen: 'is-open',
    layer: 'ms-Modal-Layer'
};
var getStyles = function (props) {
    var _a;
    var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle;
    var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(globalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.medium,
            {
                backgroundColor: 'transparent',
                position: isModeless ? 'absolute' : 'fixed',
                height: '100%',
                width: '100%',
                display: 'flex',
                alignItems: 'center',
                justifyContent: 'center',
                opacity: 0,
                pointerEvents: 'none',
                transition: "opacity " + animationDuration
            },
            topOffsetFixed &&
                hasBeenOpened && {
                alignItems: 'flex-start'
            },
            isOpen && classNames.isOpen,
            isVisible && {
                opacity: 1,
                pointerEvents: 'auto'
            },
            className
        ],
        main: [
            classNames.main,
            {
                boxShadow: effects.elevation64,
                borderRadius: effects.roundedCorner2,
                backgroundColor: palette.white,
                boxSizing: 'border-box',
                position: 'relative',
                textAlign: 'left',
                outline: '3px solid transparent',
                maxHeight: '100%',
                overflowY: 'auto',
                zIndex: isModeless ? _Styling__WEBPACK_IMPORTED_MODULE_0__["ZIndexes"].Layer : undefined
            },
            topOffsetFixed &&
                hasBeenOpened && {
                top: modalRectangleTop
            },
            isDefaultDragHandle && {
                cursor: 'move'
            },
            containerClassName
        ],
        scrollableContent: [
            classNames.scrollableContent,
            {
                overflowY: 'auto',
                flexGrow: 1,
                maxHeight: '100vh',
                selectors: (_a = {},
                    _a['@supports (-webkit-overflow-scrolling: touch)'] = {
                        maxHeight: window.innerHeight
                    },
                    _a)
            },
            scrollableContentClassName
        ],
        layer: isModeless && [
            layerClassName,
            classNames.layer,
            {
                position: 'static',
                width: 'unset',
                height: 'unset'
            }
        ],
        keyboardMoveIconContainer: {
            position: 'absolute',
            display: 'flex',
            justifyContent: 'center',
            width: '100%',
            padding: '3px 0px'
        },
        keyboardMoveIcon: {
            fontSize: fonts.xLargePlus.fontSize,
            width: '24px'
        }
    };
};


/***/ }),

/***/ "./lib/components/Modal/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Modal/Modal.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return _Modal__WEBPACK_IMPORTED_MODULE_0__["Modal"]; });

/* harmony import */ var _Modal_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Modal/Modal.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalBase", function() { return _Modal_base__WEBPACK_IMPORTED_MODULE_1__["ModalBase"]; });





/***/ }),

/***/ "./lib/components/Nav/Nav.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRelativeUrl", function() { return isRelativeUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavBase", function() { return NavBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Nav_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Nav/Nav.styles.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Icon.js");







// The number pixels per indentation level for Nav links.
var _indentationSize = 14;
// The number of pixels of left margin
var _baseIndent = 3;
// global var used in _isLinkSelectedKey
var _urlResolver;
function isRelativeUrl(url) {
    // A URL is relative if it has no protocol.
    return !!url && !/^[a-z0-9+-.]:\/\//i.test(url);
}
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["classNamesFunction"])();
var NavBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](NavBase, _super);
    function NavBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderLink = function (link) {
            var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;
            var classNames = getClassNames(styles, { theme: theme, groups: groups });
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.linkText }, link.name);
        };
        _this._renderGroup = function (group, groupIndex) {
            var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? _this._renderGroupHeader : _b;
            var classNames = getClassNames(styles, {
                theme: theme,
                isGroup: true,
                isExpanded: _this._isGroupExpanded(group),
                groups: groups
            });
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { key: groupIndex, className: classNames.group },
                group.name ? onRenderGroupHeader(group, _this._renderGroupHeader) : null,
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.groupContent }, _this._renderLinks(group.links, 0 /* nestingLevel */))));
        };
        _this._renderGroupHeader = function (group) {
            var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, expandButtonAriaLabel = _a.expandButtonAriaLabel;
            var classNames = getClassNames(styles, {
                theme: theme,
                isGroup: true,
                isExpanded: _this._isGroupExpanded(group),
                groups: groups
            });
            var isExpanded = _this._isGroupExpanded(group);
            var label = (isExpanded ? group.collapseAriaLabel : group.expandAriaLabel) || expandButtonAriaLabel;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: classNames.chevronButton, onClick: _this._onGroupHeaderClicked.bind(_this, group), "aria-label": label, "aria-expanded": isExpanded },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_6__["Icon"], { className: classNames.chevronIcon, iconName: "ChevronDown" }),
                group.name));
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["initializeComponentRef"])(_this);
        _this.state = {
            isGroupCollapsed: {},
            isLinkExpandStateChanged: false,
            selectedKey: props.initialSelectedKey || props.selectedKey
        };
        return _this;
    }
    NavBase.prototype.render = function () {
        var _a = this.props, styles = _a.styles, groups = _a.groups, className = _a.className, isOnTop = _a.isOnTop, theme = _a.theme;
        if (!groups) {
            return null;
        }
        var groupElements = groups.map(this._renderGroup);
        var classNames = getClassNames(styles, { theme: theme, className: className, isOnTop: isOnTop, groups: groups });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZone"], { direction: _FocusZone__WEBPACK_IMPORTED_MODULE_5__["FocusZoneDirection"].vertical, componentRef: this._focusZone },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("nav", { role: "navigation", className: classNames.root, "aria-label": this.props.ariaLabel }, groupElements)));
    };
    Object.defineProperty(NavBase.prototype, "selectedKey", {
        get: function () {
            return this.state.selectedKey;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Sets focus to the first tabbable item in the zone.
     * @param forceIntoFirstElement - If true, focus will be forced into the first element, even
     * if focus is already in the focus zone.
     * @returns True if focus could be set to an active element, false if no operation was taken.
     */
    NavBase.prototype.focus = function (forceIntoFirstElement) {
        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }
        if (this._focusZone && this._focusZone.current) {
            return this._focusZone.current.focus(forceIntoFirstElement);
        }
        return false;
    };
    NavBase.prototype._renderNavLink = function (link, linkIndex, nestingLevel) {
        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderLink, onRenderLink = _b === void 0 ? this._onRenderLink : _b, _c = _a.linkAs, LinkAs = _c === void 0 ? _Button__WEBPACK_IMPORTED_MODULE_2__["ActionButton"] : _c, selectedAriaLabel = _a.selectedAriaLabel;
        var isLinkWithIcon = link.icon || link.iconProps;
        var isSelectedLink = this._isLinkSelected(link);
        var classNames = getClassNames(styles, {
            theme: theme,
            isSelected: isSelectedLink,
            isDisabled: link.disabled,
            isButtonEntry: link.onClick && !link.forceAnchor,
            leftPadding: _indentationSize * nestingLevel + _baseIndent + (isLinkWithIcon ? 0 : 24),
            groups: groups
        });
        // Prevent hijacking of the parent window if link.target is defined
        var rel = link.url && link.target && !isRelativeUrl(link.url) ? 'noopener noreferrer' : undefined;
        var selectedStateAriaLabel = isSelectedLink && selectedAriaLabel ? selectedAriaLabel : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](LinkAs, { className: classNames.link, styles: _Nav_styles__WEBPACK_IMPORTED_MODULE_3__["buttonStyles"], href: link.url || (link.forceAnchor ? '#' : undefined), iconProps: link.iconProps || { iconName: link.icon }, onClick: link.onClick ? this._onNavButtonLinkClicked.bind(this, link) : this._onNavAnchorLinkClicked.bind(this, link), title: link.title || link.name, target: link.target, rel: rel, disabled: link.disabled, "aria-label": link.ariaLabel && selectedStateAriaLabel
                ? link.ariaLabel + " " + selectedStateAriaLabel
                : selectedStateAriaLabel
                    ? selectedStateAriaLabel
                    : link.ariaLabel
                        ? link.ariaLabel
                        : undefined }, onRenderLink(link, this._onRenderLink)));
    };
    NavBase.prototype._renderCompositeLink = function (link, linkIndex, nestingLevel) {
        var divProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getNativeProps"])(link, _Utilities__WEBPACK_IMPORTED_MODULE_4__["divProperties"], ['onClick']));
        var _a = this.props, expandButtonAriaLabel = _a.expandButtonAriaLabel, styles = _a.styles, groups = _a.groups, theme = _a.theme;
        var classNames = getClassNames(styles, {
            theme: theme,
            isExpanded: !!link.isExpanded,
            isSelected: this._isLinkSelected(link),
            isLink: true,
            isDisabled: link.disabled,
            position: _indentationSize * nestingLevel + 1,
            groups: groups
        });
        var finalExpandBtnAriaLabel = '';
        if (link.links && link.links.length > 0) {
            if (link.collapseAriaLabel || link.expandAriaLabel) {
                finalExpandBtnAriaLabel = link.isExpanded ? link.collapseAriaLabel : link.expandAriaLabel;
            }
            else {
                // TODO remove when `expandButtonAriaLabel` is removed. This is not an ideal concatenation for localization.
                finalExpandBtnAriaLabel = expandButtonAriaLabel ? link.name + " " + expandButtonAriaLabel : link.name;
            }
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { key: link.key || linkIndex, className: classNames.compositeLink }),
            link.links && link.links.length > 0 ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: classNames.chevronButton, onClick: this._onLinkExpandClicked.bind(this, link), "aria-label": finalExpandBtnAriaLabel, "aria-expanded": link.isExpanded ? 'true' : 'false' },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_6__["Icon"], { className: classNames.chevronIcon, iconName: "ChevronDown" }))) : null,
            this._renderNavLink(link, linkIndex, nestingLevel)));
    };
    NavBase.prototype._renderLink = function (link, linkIndex, nestingLevel) {
        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;
        var classNames = getClassNames(styles, { theme: theme, groups: groups });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("li", { key: link.key || linkIndex, role: "listitem", className: classNames.navItem },
            this._renderCompositeLink(link, linkIndex, nestingLevel),
            link.isExpanded ? this._renderLinks(link.links, ++nestingLevel) : null));
    };
    NavBase.prototype._renderLinks = function (links, nestingLevel) {
        var _this = this;
        if (!links || !links.length) {
            return null;
        }
        var linkElements = links.map(function (link, linkIndex) {
            return _this._renderLink(link, linkIndex, nestingLevel);
        });
        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;
        var classNames = getClassNames(styles, { theme: theme, groups: groups });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("ul", { role: "list", className: classNames.navItems }, linkElements));
    };
    NavBase.prototype._onGroupHeaderClicked = function (group, ev) {
        if (group.onHeaderClick) {
            group.onHeaderClick(ev, this._isGroupExpanded(group));
        }
        this._toggleCollapsed(group);
        ev.preventDefault();
        ev.stopPropagation();
    };
    NavBase.prototype._onLinkExpandClicked = function (link, ev) {
        var onLinkExpandClick = this.props.onLinkExpandClick;
        if (onLinkExpandClick) {
            onLinkExpandClick(ev, link);
        }
        if (!ev.defaultPrevented) {
            link.isExpanded = !link.isExpanded;
            this.setState({ isLinkExpandStateChanged: true });
        }
        ev.preventDefault();
        ev.stopPropagation();
    };
    NavBase.prototype._preventBounce = function (link, ev) {
        if (!link.url && link.forceAnchor) {
            ev.preventDefault();
        }
    };
    NavBase.prototype._onNavAnchorLinkClicked = function (link, ev) {
        // If the href is "#" we should call preventDefault to prevent scrolling to the top of the page
        this._preventBounce(link, ev);
        if (this.props.onLinkClick) {
            this.props.onLinkClick(ev, link);
        }
        if (!link.url && link.links && link.links.length > 0) {
            this._onLinkExpandClicked(link, ev);
        }
        this.setState({ selectedKey: link.key });
    };
    NavBase.prototype._onNavButtonLinkClicked = function (link, ev) {
        // If the href is "#" we should call preventDefault to prevent scrolling to the top of the page
        this._preventBounce(link, ev);
        if (link.onClick) {
            link.onClick(ev, link);
        }
        if (!link.url && link.links && link.links.length > 0) {
            this._onLinkExpandClicked(link, ev);
        }
        this.setState({ selectedKey: link.key });
    };
    NavBase.prototype._isLinkSelected = function (link) {
        // if caller passes in selectedKey, use it as first choice or
        // if current state.selectedKey (from addressbar) is match to the link or
        // check if URL is matching location.href (if link.url exists)
        if (this.props.selectedKey !== undefined) {
            return link.key === this.props.selectedKey;
        }
        else if (this.state.selectedKey !== undefined) {
            return link.key === this.state.selectedKey;
        }
        else if (typeof Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getWindow"])() === 'undefined' || !link.url) {
            // resolve is not supported for ssr
            return false;
        }
        else {
            // If selectedKey is undefined in props and state, then check URL
            _urlResolver = _urlResolver || document.createElement('a');
            _urlResolver.href = link.url || '';
            var target = _urlResolver.href;
            if (location.href === target) {
                return true;
            }
            // If selectedKey is not defined in state, then check URL to determine link selected status
            if (location.protocol + '//' + location.host + location.pathname === target) {
                return true;
            }
            if (location.hash) {
                // Match the hash to the url.
                if (location.hash === link.url) {
                    return true;
                }
                // Match a rebased url. (e.g. #foo becomes http://hostname/foo)
                _urlResolver.href = location.hash.substring(1);
                return _urlResolver.href === target;
            }
        }
        return false;
    };
    NavBase.prototype._isGroupExpanded = function (group) {
        if (group.name && this.state.isGroupCollapsed.hasOwnProperty(group.name)) {
            return !this.state.isGroupCollapsed[group.name];
        }
        if (group.collapseByDefault !== undefined) {
            return !group.collapseByDefault;
        }
        return true;
    };
    NavBase.prototype._toggleCollapsed = function (group) {
        var _a;
        if (group.name) {
            var newGroupCollapsed = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.state.isGroupCollapsed, (_a = {}, _a[group.name] = this._isGroupExpanded(group) // sic - presently open will be collapsed after setState
            , _a));
            this.setState({ isGroupCollapsed: newGroupCollapsed });
        }
    };
    NavBase.defaultProps = {
        groups: null
    };
    return NavBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Nav/Nav.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return Nav; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Nav_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Nav/Nav.base.js");
/* harmony import */ var _Nav_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Nav/Nav.styles.js");



var Nav = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Nav_base__WEBPACK_IMPORTED_MODULE_1__["NavBase"], _Nav_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Nav'
});


/***/ }),

/***/ "./lib/components/Nav/Nav.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttonStyles", function() { return buttonStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Nav',
    linkText: 'ms-Nav-linkText',
    compositeLink: 'ms-Nav-compositeLink',
    link: 'ms-Nav-link',
    chevronButton: 'ms-Nav-chevronButton',
    chevronIcon: 'ms-Nav-chevron',
    navItem: 'ms-Nav-navItem',
    navItems: 'ms-Nav-navItems',
    group: 'ms-Nav-group',
    groupContent: 'ms-Nav-groupContent'
};
var buttonStyles = {
    textContainer: {
        overflow: 'hidden'
    },
    label: {
        whiteSpace: 'nowrap',
        textOverflow: 'ellipsis',
        overflow: 'hidden'
    }
};
var getStyles = function (props) {
    var _a, _b;
    var className = props.className, theme = props.theme, isOnTop = props.isOnTop, isExpanded = props.isExpanded, isGroup = props.isGroup, isLink = props.isLink, isSelected = props.isSelected, isDisabled = props.isDisabled, isButtonEntry = props.isButtonEntry, _c = props.navHeight, navHeight = _c === void 0 ? 44 : _c, position = props.position, _d = props.leftPadding, leftPadding = _d === void 0 ? 20 : _d, _e = props.leftPaddingExpanded, leftPaddingExpanded = _e === void 0 ? 28 : _e, _f = props.rightPadding, rightPadding = _f === void 0 ? 20 : _f;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            className,
            fonts.medium,
            {
                overflowY: 'auto',
                userSelect: 'none',
                WebkitOverflowScrolling: 'touch'
            },
            isOnTop && [
                {
                    position: 'absolute'
                },
                _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"].slideRightIn40
            ]
        ],
        linkText: [
            classNames.linkText,
            {
                margin: '0 4px',
                overflow: 'hidden',
                verticalAlign: 'middle',
                textAlign: 'left',
                textOverflow: 'ellipsis'
            }
        ],
        compositeLink: [
            classNames.compositeLink,
            {
                display: 'block',
                position: 'relative',
                color: semanticColors.bodyText
            },
            isExpanded && 'is-expanded',
            isSelected && 'is-selected',
            isDisabled && 'is-disabled',
            isDisabled && {
                color: semanticColors.disabledText
            }
        ],
        link: [
            classNames.link,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            {
                display: 'block',
                position: 'relative',
                height: navHeight,
                width: '100%',
                lineHeight: navHeight + "px",
                textDecoration: 'none',
                cursor: 'pointer',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                overflow: 'hidden',
                paddingLeft: leftPadding,
                paddingRight: rightPadding,
                color: semanticColors.bodyText,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'transparent',
                        selectors: {
                            ':focus': {
                                borderColor: 'WindowText'
                            }
                        }
                    },
                    _a)
            },
            !isDisabled && {
                selectors: {
                    '.ms-Nav-compositeLink:hover &': {
                        backgroundColor: semanticColors.bodyBackgroundHovered,
                        color: semanticColors.bodyText
                    }
                }
            },
            isSelected && {
                color: semanticColors.bodyTextChecked,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                backgroundColor: semanticColors.bodyBackgroundChecked,
                selectors: {
                    '&:after': {
                        borderLeft: "2px solid " + palette.themePrimary,
                        content: '""',
                        position: 'absolute',
                        top: 0,
                        right: 0,
                        bottom: 0,
                        left: 0,
                        pointerEvents: 'none'
                    }
                }
            },
            isDisabled && {
                color: semanticColors.disabledText
            },
            isButtonEntry && {
                color: palette.themePrimary
            }
        ],
        chevronButton: [
            classNames.chevronButton,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            fonts.small,
            {
                display: 'block',
                textAlign: 'left',
                lineHeight: navHeight + "px",
                margin: '5px 0',
                padding: "0px, " + rightPadding + "px, 0px, " + leftPaddingExpanded + "px",
                border: 'none',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                overflow: 'hidden',
                cursor: 'pointer',
                color: semanticColors.bodyText,
                backgroundColor: 'transparent',
                selectors: (_b = {
                        '&:visited': {
                            color: 'inherit'
                        },
                        '&:hover': {
                            color: semanticColors.bodyText,
                            backgroundColor: semanticColors.bodyBackgroundHovered
                        }
                    },
                    _b["." + classNames.compositeLink + ":hover &"] = {
                        color: semanticColors.bodyText,
                        backgroundColor: semanticColors.bodyBackgroundHovered
                    },
                    _b)
            },
            isGroup && {
                fontSize: fonts.large.fontSize,
                width: '100%',
                height: navHeight,
                borderBottom: "1px solid " + semanticColors.bodyDivider
            },
            isLink && {
                display: 'block',
                width: leftPaddingExpanded - 2,
                height: navHeight - 2,
                position: 'absolute',
                top: '1px',
                left: position + "px",
                zIndex: _Styling__WEBPACK_IMPORTED_MODULE_0__["ZIndexes"].Nav,
                padding: 0,
                margin: 0
            },
            isSelected && {
                color: palette.themePrimary,
                backgroundColor: palette.neutralLighterAlt,
                selectors: {
                    '&:after': {
                        borderLeft: "2px solid " + palette.themePrimary,
                        content: '""',
                        position: 'absolute',
                        top: 0,
                        right: 0,
                        bottom: 0,
                        left: 0,
                        pointerEvents: 'none'
                    }
                }
            }
        ],
        chevronIcon: [
            classNames.chevronIcon,
            {
                position: 'absolute',
                left: '8px',
                height: navHeight,
                lineHeight: navHeight + "px",
                fontSize: fonts.small.fontSize,
                transition: 'transform .1s linear'
            },
            isExpanded && {
                transform: 'rotate(-180deg)'
            },
            isLink && {
                top: 0
            }
        ],
        navItem: [
            classNames.navItem,
            {
                padding: 0
            }
        ],
        navItems: [
            classNames.navItems,
            {
                listStyleType: 'none',
                padding: 0,
                margin: 0 // remove default <UL> styles
            }
        ],
        group: [classNames.group, isExpanded && 'is-expanded'],
        groupContent: [
            classNames.groupContent,
            {
                display: 'none',
                marginBottom: '40px'
            },
            _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"].slideDownIn20,
            isExpanded && {
                display: 'block'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Nav/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Nav__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Nav/Nav.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return _Nav__WEBPACK_IMPORTED_MODULE_0__["Nav"]; });

/* harmony import */ var _Nav_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Nav/Nav.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRelativeUrl", function() { return _Nav_base__WEBPACK_IMPORTED_MODULE_1__["isRelativeUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavBase", function() { return _Nav_base__WEBPACK_IMPORTED_MODULE_1__["NavBase"]; });





/***/ }),

/***/ "./lib/components/OverflowSet/OverflowSet.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverflowSetBase", function() { return OverflowSetBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/keytips/KeytipManager.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var OverflowSetBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OverflowSetBase, _super);
    function OverflowSetBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._persistedKeytips = {};
        _this._keytipManager = _utilities_keytips_KeytipManager__WEBPACK_IMPORTED_MODULE_4__["KeytipManager"].getInstance();
        _this._divContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onRenderItems = function (items) {
            return items.map(function (item, i) {
                var wrapperDivProps = {
                    className: _this._classNames.item
                };
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: item.key }, wrapperDivProps), _this.props.onRenderItem(item)));
            });
        };
        _this._onRenderOverflowButtonWrapper = function (items) {
            var wrapperDivProps = {
                className: _this._classNames.overflowButton
            };
            var overflowKeytipSequences = _this.props.keytipSequences;
            var newOverflowItems = [];
            if (overflowKeytipSequences) {
                items.forEach(function (overflowItem) {
                    var keytip = overflowItem.keytipProps;
                    if (keytip) {
                        // Create persisted keytip
                        var persistedKeytip = {
                            content: keytip.content,
                            keySequences: keytip.keySequences,
                            disabled: keytip.disabled || !!(overflowItem.disabled || overflowItem.isDisabled),
                            hasDynamicChildren: keytip.hasDynamicChildren,
                            hasMenu: keytip.hasMenu
                        };
                        if (keytip.hasDynamicChildren || _this._getSubMenuForItem(overflowItem)) {
                            // If the keytip has a submenu or children nodes, change onExecute to persistedKeytipExecute
                            persistedKeytip.onExecute = _this._keytipManager.menuExecute.bind(_this._keytipManager, overflowKeytipSequences, overflowItem.keytipProps.keySequences);
                        }
                        else {
                            // If the keytip doesn't have a submenu, just execute the original function
                            persistedKeytip.onExecute = keytip.onExecute;
                        }
                        // Add this persisted keytip to our internal list, use a temporary uniqueID (its content)
                        // uniqueID will get updated on register
                        _this._persistedKeytips[persistedKeytip.content] = persistedKeytip;
                        // Add the overflow sequence to this item
                        var newOverflowItem = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, overflowItem, { keytipProps: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytip, { overflowSetSequence: overflowKeytipSequences }) });
                        newOverflowItems.push(newOverflowItem);
                    }
                    else {
                        // Nothing to change, add overflowItem to list
                        newOverflowItems.push(overflowItem);
                    }
                });
            }
            else {
                newOverflowItems = items;
            }
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, wrapperDivProps), _this.props.onRenderOverflowButton(newOverflowItems));
        };
        if (props.doNotContainWithinFocusZone) {
            _this._warnMutuallyExclusive({
                doNotContainWithinFocusZone: 'focusZoneProps'
            });
        }
        return _this;
    }
    OverflowSetBase.prototype.render = function () {
        var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, className = _a.className, focusZoneProps = _a.focusZoneProps, styles = _a.styles, vertical = _a.vertical, role = _a.role, doNotContainWithinFocusZone = _a.doNotContainWithinFocusZone;
        this._classNames = getClassNames(styles, { className: className, vertical: vertical });
        var Tag;
        var uniqueComponentProps;
        if (doNotContainWithinFocusZone) {
            Tag = 'div';
            uniqueComponentProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"]), { ref: this._divContainer });
        }
        else {
            Tag = _FocusZone__WEBPACK_IMPORTED_MODULE_2__["FocusZone"];
            uniqueComponentProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"]), focusZoneProps, { componentRef: this._focusZone, direction: vertical ? _FocusZone__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].vertical : _FocusZone__WEBPACK_IMPORTED_MODULE_2__["FocusZoneDirection"].horizontal });
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](Tag, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "aria-orientation": vertical ? 'vertical' : 'horizontal' }, uniqueComponentProps, { className: this._classNames.root, role: role }),
            items && this._onRenderItems(items),
            overflowItems && overflowItems.length > 0 && this._onRenderOverflowButtonWrapper(overflowItems)));
    };
    /**
     * Sets focus to the first tabbable item in the OverflowSet.
     * @param forceIntoFirstElement - If true, focus will be forced into the first element,
     * even if focus is already in theOverflowSet
     * @returns True if focus could be set to an active element, false if no operation was taken.
     */
    OverflowSetBase.prototype.focus = function (forceIntoFirstElement) {
        var focusSucceeded = false;
        if (this.props.doNotContainWithinFocusZone) {
            if (this._divContainer.current) {
                focusSucceeded = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["focusFirstChild"])(this._divContainer.current);
            }
        }
        else if (this._focusZone.current) {
            focusSucceeded = this._focusZone.current.focus(forceIntoFirstElement);
        }
        return focusSucceeded;
    };
    /**
     * Sets focus to a specific child element within the OverflowSet.
     * @param childElement - The child element within the zone to focus.
     * @returns True if focus could be set to an active element, false if no operation was taken.
     */
    OverflowSetBase.prototype.focusElement = function (childElement) {
        var focusSucceeded = false;
        if (!childElement) {
            return false;
        }
        if (this.props.doNotContainWithinFocusZone) {
            if (this._divContainer.current && Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["elementContains"])(this._divContainer.current, childElement)) {
                childElement.focus();
                focusSucceeded = document.activeElement === childElement;
            }
        }
        else if (this._focusZone.current) {
            focusSucceeded = this._focusZone.current.focusElement(childElement);
        }
        return focusSucceeded;
    };
    // Add keytip register/unregister handlers to lifecycle functions to correctly manage persisted keytips
    OverflowSetBase.prototype.componentDidMount = function () {
        this._registerPersistedKeytips();
    };
    OverflowSetBase.prototype.componentWillUnmount = function () {
        this._unregisterPersistedKeytips();
    };
    // tslint:disable-next-line function-name
    OverflowSetBase.prototype.UNSAFE_componentWillUpdate = function () {
        this._unregisterPersistedKeytips();
    };
    OverflowSetBase.prototype.componentDidUpdate = function () {
        this._registerPersistedKeytips();
    };
    OverflowSetBase.prototype._registerPersistedKeytips = function () {
        var _this = this;
        Object.keys(this._persistedKeytips).forEach(function (key) {
            var keytip = _this._persistedKeytips[key];
            var uniqueID = _this._keytipManager.register(keytip, true);
            // Update map
            _this._persistedKeytips[uniqueID] = keytip;
            delete _this._persistedKeytips[key];
        });
    };
    OverflowSetBase.prototype._unregisterPersistedKeytips = function () {
        var _this = this;
        // Delete all persisted keytips saved
        Object.keys(this._persistedKeytips).forEach(function (uniqueID) {
            _this._keytipManager.unregister(_this._persistedKeytips[uniqueID], uniqueID, true);
        });
        this._persistedKeytips = {};
    };
    /**
     * Gets the subMenu for an overflow item
     * Checks if itemSubMenuProvider has been defined, if not defaults to subMenuProps
     */
    OverflowSetBase.prototype._getSubMenuForItem = function (item) {
        if (this.props.itemSubMenuProvider) {
            return this.props.itemSubMenuProvider(item);
        }
        if (item.subMenuProps) {
            return item.subMenuProps.items;
        }
        return undefined;
    };
    OverflowSetBase.defaultProps = {
        vertical: false,
        role: 'menubar'
    };
    return OverflowSetBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/OverflowSet/OverflowSet.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverflowSet", function() { return OverflowSet; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _OverflowSet_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/OverflowSet/OverflowSet.base.js");
/* harmony import */ var _OverflowSet_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/OverflowSet/OverflowSet.styles.js");



var OverflowSet = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_OverflowSet_base__WEBPACK_IMPORTED_MODULE_1__["OverflowSetBase"], _OverflowSet_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'OverflowSet'
});


/***/ }),

/***/ "./lib/components/OverflowSet/OverflowSet.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var overflowItemStyle = {
    flexShrink: 0,
    display: 'inherit'
};
var getStyles = function (props) {
    var className = props.className, vertical = props.vertical;
    return {
        root: [
            'ms-OverflowSet',
            {
                position: 'relative',
                display: 'flex',
                flexWrap: 'nowrap'
            },
            vertical && { flexDirection: 'column' },
            className
        ],
        item: ['ms-OverflowSet-item', overflowItemStyle],
        overflowButton: ['ms-OverflowSet-overflowButton', overflowItemStyle]
    };
};


/***/ }),

/***/ "./lib/components/OverflowSet/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _OverflowSet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/OverflowSet/OverflowSet.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSet", function() { return _OverflowSet__WEBPACK_IMPORTED_MODULE_0__["OverflowSet"]; });

/* harmony import */ var _OverflowSet_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/OverflowSet/OverflowSet.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSetBase", function() { return _OverflowSet_base__WEBPACK_IMPORTED_MODULE_1__["OverflowSetBase"]; });





/***/ }),

/***/ "./lib/components/Overlay/Overlay.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayBase", function() { return OverlayBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var OverlayBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OverlayBase, _super);
    function OverlayBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    OverlayBase.prototype.componentDidMount = function () {
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["disableBodyScroll"])();
    };
    OverlayBase.prototype.componentWillUnmount = function () {
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["enableBodyScroll"])();
    };
    OverlayBase.prototype.render = function () {
        var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            isDark: isDark
        });
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: classNames.root }));
    };
    return OverlayBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Overlay/Overlay.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return Overlay; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Overlay_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Overlay/Overlay.base.js");
/* harmony import */ var _Overlay_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Overlay/Overlay.styles.js");



var Overlay = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Overlay_base__WEBPACK_IMPORTED_MODULE_1__["OverlayBase"], _Overlay_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Overlay'
});


/***/ }),

/***/ "./lib/components/Overlay/Overlay.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Overlay',
    rootDark: 'ms-Overlay--dark'
};
var getStyles = function (props) {
    var _a;
    var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;
    var palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                backgroundColor: palette.whiteTranslucent40,
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
                position: 'absolute',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText',
                        opacity: 0
                    },
                    _a)
            },
            isNone && {
                visibility: 'hidden'
            },
            isDark && [
                classNames.rootDark,
                {
                    backgroundColor: palette.blackTranslucent40
                }
            ],
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Overlay/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Overlay/Overlay.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return _Overlay__WEBPACK_IMPORTED_MODULE_0__["Overlay"]; });

/* harmony import */ var _Overlay_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Overlay/Overlay.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverlayBase", function() { return _Overlay_base__WEBPACK_IMPORTED_MODULE_1__["OverlayBase"]; });





/***/ }),

/***/ "./lib/components/Panel/Panel.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelBase", function() { return PanelBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Layer.js");
/* harmony import */ var _Overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Overlay.js");
/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Popup.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/FocusTrapZone/index.js");
/* harmony import */ var _Panel_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/Panel/Panel.types.js");










var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["classNamesFunction"])();
var PanelVisibilityState;
(function (PanelVisibilityState) {
    PanelVisibilityState[PanelVisibilityState["closed"] = 0] = "closed";
    PanelVisibilityState[PanelVisibilityState["animatingOpen"] = 1] = "animatingOpen";
    PanelVisibilityState[PanelVisibilityState["open"] = 2] = "open";
    PanelVisibilityState[PanelVisibilityState["animatingClosed"] = 3] = "animatingClosed";
})(PanelVisibilityState || (PanelVisibilityState = {}));
var PanelBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PanelBase, _super);
    function PanelBase(props) {
        var _this = _super.call(this, props) || this;
        _this._panel = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._animationCallback = null;
        _this.dismiss = function (ev) {
            if (_this.props.onDismiss) {
                _this.props.onDismiss(ev);
            }
            if (!ev || (ev && !ev.defaultPrevented)) {
                _this.close();
            }
        };
        // Allow the user to scroll within the panel but not on the body
        _this._allowScrollOnPanel = function (elt) {
            if (elt) {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["allowScrollOnElement"])(elt, _this._events);
            }
            else {
                _this._events.off(_this._scrollableContent);
            }
            _this._scrollableContent = elt;
        };
        _this._onRenderNavigation = function (props) {
            if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {
                return null;
            }
            var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent));
        };
        _this._onRenderNavigationContent = function (props) {
            var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton;
            var theme = Object(_Styling__WEBPACK_IMPORTED_MODULE_6__["getTheme"])();
            if (hasCloseButton) {
                // TODO -Issue #5689: Comment in once Button is converted to mergeStyles
                // const iconButtonStyles = this._classNames.subComponentStyles
                // ? (this._classNames.subComponentStyles.iconButton as IStyleFunctionOrObject<IButtonStyleProps, IButtonStyles>)
                // : undefined;
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_2__["IconButton"]
                // TODO -Issue #5689: Comment in once Button is converted to mergeStyles
                // className={iconButtonStyles}
                , { 
                    // TODO -Issue #5689: Comment in once Button is converted to mergeStyles
                    // className={iconButtonStyles}
                    styles: {
                        root: {
                            height: 'auto',
                            width: '44px',
                            color: theme.palette.neutralSecondary,
                            fontSize: _Styling__WEBPACK_IMPORTED_MODULE_6__["IconFontSizes"].large
                        },
                        rootHovered: {
                            color: theme.palette.neutralPrimary
                        }
                    }, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, "data-is-visible": true, iconProps: { iconName: 'Cancel' } }));
            }
            return null;
        };
        _this._onRenderHeader = function (props, defaultRender, headerTextId) {
            var headerText = props.headerText;
            if (headerText) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.header },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { className: _this._classNames.headerText, id: headerTextId, role: "heading", "aria-level": 2 }, headerText)));
            }
            return null;
        };
        _this._onRenderBody = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.content }, props.children);
        };
        _this._onRenderFooter = function (props) {
            var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;
            if (onRenderFooterContent) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.footer },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.footerInner }, onRenderFooterContent())));
            }
            return null;
        };
        _this._animateTo = function (newVisibilityState) {
            _this._animationCallback = _this._async.setTimeout(function () {
                _this.setState({ visibility: newVisibilityState });
                _this._onTransitionComplete();
            }, 200);
        };
        _this._clearExistingAnimationTimer = function () {
            if (_this._animationCallback !== null) {
                _this._async.clearTimeout(_this._animationCallback);
            }
        };
        _this._onPanelClick = function (ev) {
            _this.dismiss(ev);
        };
        _this._onTransitionComplete = function () {
            _this._updateFooterPosition();
            if (_this.state.visibility === PanelVisibilityState.open && _this.props.onOpened) {
                _this.props.onOpened();
            }
            if (_this.state.visibility === PanelVisibilityState.closed && _this.props.onDismissed) {
                _this.props.onDismissed();
            }
        };
        _this._warnDeprecations({
            ignoreExternalFocusing: 'focusTrapZoneProps',
            forceFocusInsideTrap: 'focusTrapZoneProps',
            firstFocusableSelector: 'focusTrapZoneProps'
        });
        _this.state = {
            isFooterSticky: false,
            visibility: PanelVisibilityState.closed,
            id: Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["getId"])('Panel')
        };
        return _this;
    }
    PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {
        if (nextProps.isOpen === undefined) {
            return null; // no state update
        }
        if (nextProps.isOpen &&
            (prevState.visibility === PanelVisibilityState.closed || prevState.visibility === PanelVisibilityState.animatingClosed)) {
            return { visibility: PanelVisibilityState.animatingOpen };
        }
        if (!nextProps.isOpen &&
            (prevState.visibility === PanelVisibilityState.open || prevState.visibility === PanelVisibilityState.animatingOpen)) {
            return { visibility: PanelVisibilityState.animatingClosed };
        }
        return null;
    };
    PanelBase.prototype.componentDidMount = function () {
        this._events.on(window, 'resize', this._updateFooterPosition);
        if (this._shouldListenForOuterClick(this.props)) {
            this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);
        }
        if (this.props.isOpen) {
            this.setState({ visibility: PanelVisibilityState.animatingOpen });
        }
    };
    PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {
        var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);
        var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);
        if (this.state.visibility !== previousState.visibility) {
            this._clearExistingAnimationTimer();
            if (this.state.visibility === PanelVisibilityState.animatingOpen) {
                this._animateTo(PanelVisibilityState.open);
            }
            else if (this.state.visibility === PanelVisibilityState.animatingClosed) {
                this._animateTo(PanelVisibilityState.closed);
            }
        }
        if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {
            this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);
        }
        else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {
            this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);
        }
    };
    PanelBase.prototype.render = function () {
        var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;
        var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;
        var isLeft = type === _Panel_types__WEBPACK_IMPORTED_MODULE_9__["PanelType"].smallFixedNear || type === _Panel_types__WEBPACK_IMPORTED_MODULE_9__["PanelType"].customNear ? true : false;
        var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["getRTL"])();
        var isOnRightSide = isRTL ? isLeft : !isLeft;
        var headerTextId = headerText && id + '-headerText';
        var customWidthStyles = type === _Panel_types__WEBPACK_IMPORTED_MODULE_9__["PanelType"].custom || type === _Panel_types__WEBPACK_IMPORTED_MODULE_9__["PanelType"].customNear ? { width: customWidth } : {};
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_7__["divProperties"]);
        var isOpen = this.isActive;
        var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;
        if (!isOpen && !isAnimating && !isHiddenOnDismiss) {
            return null;
        }
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,
            hasCloseButton: hasCloseButton,
            headerClassName: headerClassName,
            isAnimating: isAnimating,
            isFooterSticky: isFooterSticky,
            isFooterAtBottom: isFooterAtBottom,
            isOnRightSide: isOnRightSide,
            isOpen: isOpen,
            isHiddenOnDismiss: isHiddenOnDismiss,
            type: type
        });
        var _classNames = this._classNames;
        var overlay;
        if (isBlocking && isOpen) {
            overlay = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Overlay__WEBPACK_IMPORTED_MODULE_4__["Overlay"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined }, overlayProps)));
        }
        var header = onRenderHeader(this.props, this._onRenderHeader, headerTextId);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Layer__WEBPACK_IMPORTED_MODULE_3__["Layer"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, layerProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Popup__WEBPACK_IMPORTED_MODULE_5__["Popup"], { role: "dialog", "aria-modal": "true", ariaLabelledBy: header ? headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "aria-hidden": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),
                    overlay,
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone_index__WEBPACK_IMPORTED_MODULE_8__["FocusTrapZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _classNames.commands, "data-is-visible": true }, onRenderNavigation(this.props, this._onRenderNavigation)),
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _classNames.contentInner },
                            header,
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, "data-is-scrollable": true }, onRenderBody(this.props, this._onRenderBody)),
                            onRenderFooter(this.props, this._onRenderFooter)))))));
    };
    PanelBase.prototype.open = function () {
        if (this.props.isOpen !== undefined) {
            return;
        }
        if (this.isActive) {
            return;
        }
        if (this.props.onOpen) {
            this.props.onOpen();
        }
        this.setState({ visibility: PanelVisibilityState.animatingOpen });
    };
    PanelBase.prototype.close = function () {
        if (this.props.isOpen !== undefined) {
            return;
        }
        if (!this.isActive) {
            return;
        }
        this.setState({ visibility: PanelVisibilityState.animatingClosed });
    };
    Object.defineProperty(PanelBase.prototype, "isActive", {
        /** isActive is true when panel is open or opening. */
        get: function () {
            return this.state.visibility === PanelVisibilityState.open || this.state.visibility === PanelVisibilityState.animatingOpen;
        },
        enumerable: true,
        configurable: true
    });
    PanelBase.prototype._shouldListenForOuterClick = function (props) {
        return !!props.isBlocking && !!props.isOpen;
    };
    PanelBase.prototype._updateFooterPosition = function () {
        var scrollableContent = this._scrollableContent;
        if (scrollableContent) {
            var height = scrollableContent.clientHeight;
            var innerHeight_1 = scrollableContent.scrollHeight;
            this.setState({
                isFooterSticky: height < innerHeight_1 ? true : false
            });
        }
    };
    PanelBase.prototype._dismissOnOuterClick = function (ev) {
        var panel = this._panel.current;
        if (this.isActive && panel) {
            if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_7__["elementContains"])(panel, ev.target)) {
                if (this.props.onOuterClick) {
                    this.props.onOuterClick();
                    ev.preventDefault();
                }
                else {
                    this.dismiss();
                }
            }
        }
    };
    PanelBase.defaultProps = {
        isHiddenOnDismiss: false,
        isOpen: undefined,
        isBlocking: true,
        hasCloseButton: true,
        type: _Panel_types__WEBPACK_IMPORTED_MODULE_9__["PanelType"].smallFixedFar
    };
    return PanelBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_7__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Panel/Panel.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return Panel; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Panel_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Panel/Panel.base.js");
/* harmony import */ var _Panel_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Panel/Panel.styles.js");



/**
 * Panel description
 */
var Panel = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Panel_base__WEBPACK_IMPORTED_MODULE_1__["PanelBase"], _Panel_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Panel'
});


/***/ }),

/***/ "./lib/components/Panel/Panel.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Panel_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Panel/Panel.types.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Styling.js");
var _a, _b, _c, _d, _e;



// TODO -Issue #5689: Comment in once Button is converted to mergeStyles
// import { IStyleFunctionOrObject } from '../../Utilities';
// import { IButtonStyles, IButtonStyleProps } from '../../Button';
var GlobalClassNames = {
    root: 'ms-Panel',
    main: 'ms-Panel-main',
    commands: 'ms-Panel-commands',
    contentInner: 'ms-Panel-contentInner',
    scrollableContent: 'ms-Panel-scrollableContent',
    navigation: 'ms-Panel-navigation',
    closeButton: 'ms-Panel-closeButton ms-PanelAction-close',
    header: 'ms-Panel-header',
    headerText: 'ms-Panel-headerText',
    content: 'ms-Panel-content',
    footer: 'ms-Panel-footer',
    footerInner: 'ms-Panel-footerInner',
    isOpen: 'is-open',
    hasCloseButton: 'ms-Panel--hasCloseButton',
    smallFluid: 'ms-Panel--smFluid',
    smallFixedNear: 'ms-Panel--smLeft',
    smallFixedFar: 'ms-Panel--sm',
    medium: 'ms-Panel--md',
    large: 'ms-Panel--lg',
    largeFixed: 'ms-Panel--fixed',
    extraLarge: 'ms-Panel--xl',
    custom: 'ms-Panel--custom',
    customNear: 'ms-Panel--customLeft'
};
var panelWidth = {
    full: '100%',
    auto: 'auto',
    xs: 272,
    sm: 340,
    md1: 592,
    md2: 644,
    lg: 940
};
var panelMargin = {
    auto: 'auto',
    none: 0,
    md: 48,
    lg: 428,
    xl: 176
};
// Following consts are used below in `getPanelBreakpoints()` function to provide
// necessary fallbacks for different types of Panel in different breakpoints.
var smallPanelSelectors = (_a = {},
    _a["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinMedium"] + "px)"] = {
        width: panelWidth.sm
    },
    _a);
var mediumPanelSelectors = (_b = {},
    _b["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinLarge"] + "px)"] = {
        width: panelWidth.md1
    },
    _b["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinXLarge"] + "px)"] = {
        width: panelWidth.md2
    },
    _b);
var largePanelSelectors = (_c = {},
    _c["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinUhfMobile"] + "px)"] = {
        left: panelMargin.md,
        width: panelWidth.auto
    },
    _c["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinXXLarge"] + "px)"] = {
        left: panelMargin.lg
    },
    _c);
var largeFixedPanelSelectors = (_d = {},
    _d["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinXXLarge"] + "px)"] = {
        left: panelMargin.auto,
        width: panelWidth.lg
    },
    _d);
var extraLargePanelSelectors = (_e = {},
    _e["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinXXLarge"] + "px)"] = {
        left: panelMargin.xl
    },
    _e);
// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.
// This is done in the effort to follow design redlines.
var getPanelBreakpoints = function (type) {
    var selectors;
    // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`
    // are not checked in here because they render the same in all the breakpoints
    // and have the checks done separately in the `getStyles` function below.
    switch (type) {
        case _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].smallFixedFar:
            selectors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, smallPanelSelectors);
            break;
        case _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].medium:
            selectors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, smallPanelSelectors, mediumPanelSelectors);
            break;
        case _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].large:
            selectors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, smallPanelSelectors, mediumPanelSelectors, largePanelSelectors);
            break;
        case _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].largeFixed:
            selectors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, smallPanelSelectors, mediumPanelSelectors, largePanelSelectors, largeFixedPanelSelectors);
            break;
        case _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].extraLarge:
            selectors = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, smallPanelSelectors, mediumPanelSelectors, largePanelSelectors, extraLargePanelSelectors);
            break;
        default:
            break;
    }
    return selectors;
};
var commandBarHeight = '44px';
var sharedPaddingStyles = {
    paddingLeft: '16px',
    paddingRight: '16px'
};
// // TODO -Issue #5689: Comment in once Button is converted to mergeStyles
// function getIconButtonStyles(props: IPanelStyleProps): IStyleFunctionOrObject<IButtonStyleProps, IButtonStyles> {
//   const { theme } = props;
//   return () => ({
//     root: {
//       height: 'auto',
//       width: '44px',
//       color: theme.palette.neutralSecondary,
//       fontSize: IconFontSizes.large
//     },
//     rootHovered: {
//       color: theme.palette.neutralPrimary
//     }
//   });
// }
var getStyles = function (props) {
    var _a, _b;
    var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, theme = props.theme, _c = props.type, type = _c === void 0 ? _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].smallFixedFar : _c;
    var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["getGlobalClassNames"])(GlobalClassNames, theme);
    var isCustomPanel = type === _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].custom || type === _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].customNear;
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            isOpen && classNames.isOpen,
            hasCloseButton && classNames.hasCloseButton,
            {
                pointerEvents: 'none',
                position: 'absolute',
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            },
            isCustomPanel && isOnRightSide && classNames.custom,
            isCustomPanel && !isOnRightSide && classNames.customNear,
            className
        ],
        overlay: [
            {
                pointerEvents: 'auto',
                cursor: 'pointer'
            },
            isOpen && isAnimating && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].fadeIn100,
            !isOpen && isAnimating && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].fadeOut100
        ],
        hiddenPanel: [
            !isOpen &&
                !isAnimating &&
                isHiddenOnDismiss && {
                visibility: 'hidden'
            }
        ],
        main: [
            classNames.main,
            {
                backgroundColor: semanticColors.bodyBackground,
                boxShadow: effects.elevation64,
                pointerEvents: 'auto',
                position: 'absolute',
                display: 'flex',
                flexDirection: 'column',
                overflowX: 'hidden',
                overflowY: 'auto',
                WebkitOverflowScrolling: 'touch',
                bottom: 0,
                top: 0,
                // (left, right, width) - Properties to be overridden depending on the type of the Panel and the screen breakpoint.
                left: panelMargin.auto,
                right: panelMargin.none,
                width: panelWidth.full,
                selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_a = {}, _a[_Styling__WEBPACK_IMPORTED_MODULE_2__["HighContrastSelector"]] = {
                    borderLeft: "3px solid " + semanticColors.variantBorder,
                    borderRight: "3px solid " + semanticColors.variantBorder
                }, _a), getPanelBreakpoints(type))
            },
            type === _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].smallFluid && {
                left: panelMargin.none
            },
            type === _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].smallFixedNear && {
                left: panelMargin.none,
                right: panelMargin.auto,
                width: panelWidth.xs
            },
            type === _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"].customNear && {
                right: 'auto',
                left: 0
            },
            isCustomPanel && {
                maxWidth: '100vw'
            },
            isOpen && isAnimating && !isOnRightSide && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].slideRightIn40,
            isOpen && isAnimating && isOnRightSide && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].slideLeftIn40,
            !isOpen && isAnimating && !isOnRightSide && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].slideLeftOut40,
            !isOpen && isAnimating && isOnRightSide && _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationClassNames"].slideRightOut40,
            focusTrapZoneClassName
        ],
        commands: [classNames.commands],
        navigation: [
            classNames.navigation,
            {
                padding: '0 5px',
                height: commandBarHeight,
                display: 'flex',
                justifyContent: 'flex-end'
            }
        ],
        closeButton: [classNames.closeButton],
        contentInner: [
            classNames.contentInner,
            {
                display: 'flex',
                flexDirection: 'column',
                flexGrow: 1,
                overflowY: 'hidden'
            }
        ],
        header: [
            classNames.header,
            sharedPaddingStyles,
            {
                margin: '14px 0',
                // Ensure that title doesn't shrink if screen is too small
                flexShrink: 0,
                selectors: (_b = {},
                    _b["@media (min-width: " + _Styling__WEBPACK_IMPORTED_MODULE_2__["ScreenWidthMinXLarge"] + "px)"] = {
                        marginTop: '30px'
                    },
                    _b)
            }
        ],
        headerText: [
            classNames.headerText,
            fonts.xLarge,
            {
                color: semanticColors.bodyText,
                lineHeight: '27px',
                margin: 0,
                overflowWrap: 'break-word',
                wordWrap: 'break-word',
                wordBreak: 'break-word',
                hyphens: 'auto'
            },
            headerClassName
        ],
        scrollableContent: [
            classNames.scrollableContent,
            {
                overflowY: 'auto'
            },
            isFooterAtBottom && {
                flexGrow: 1
            }
        ],
        content: [
            classNames.content,
            sharedPaddingStyles,
            {
                marginBottom: 0,
                paddingBottom: 20
            }
        ],
        footer: [
            classNames.footer,
            {
                // Ensure that footer doesn't shrink if screen is too small
                flexShrink: 0,
                borderTop: '1px solid transparent',
                transition: "opacity " + _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationVariables"].durationValue3 + " " + _Styling__WEBPACK_IMPORTED_MODULE_2__["AnimationVariables"].easeFunction2
            },
            isFooterSticky && {
                background: semanticColors.bodyBackground,
                borderTopColor: semanticColors.variantBorder
            }
        ],
        footerInner: [
            classNames.footerInner,
            sharedPaddingStyles,
            {
                paddingBottom: 16,
                paddingTop: 16
            }
        ]
        // subComponentStyles: {
        //   iconButton: getIconButtonStyles(props)
        // }
    };
};


/***/ }),

/***/ "./lib/components/Panel/Panel.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelType", function() { return PanelType; });
/**
 * {@docCategory Panel}
 */
var PanelType;
(function (PanelType) {
    /**
     * Renders the Panel with a `fluid` (full screen) width.
     * Recommended for use on small screen breakpoints.
     * - Small (320-479): full screen width, 16px left/right padding
     * - Medium (480-639): full screen width, 16px left/right padding
     * - Large (640-1023): full screen width, 32px left/right padding
     * - XLarge (1024-1365): full screen width, 32px left/right padding
     * - XXLarge (1366-up): full screen width, 40px left/right padding
     */
    PanelType[PanelType["smallFluid"] = 0] = "smallFluid";
    /**
     * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).
     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint
     * - Medium (480-639): 340px width, 16px left/right padding
     * - Large (640-1023): 340px width, 32px left/right padding
     * - XLarge (1024-1365): 340px width, 32px left/right padding
     * - XXLarge (1366-up): 340px width, 40px left/right padding
     */
    PanelType[PanelType["smallFixedFar"] = 1] = "smallFixedFar";
    /**
     * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).
     * - Small (320-479): 272px width, 16px left/right padding
     * - Medium (480-639): 272px width, 16px left/right padding
     * - Large (640-1023): 272px width, 32px left/right padding
     * - XLarge (1024-1365): 272px width, 32px left/right padding
     * - XXLarge (1366-up): 272px width, 40px left/right padding
     */
    PanelType[PanelType["smallFixedNear"] = 2] = "smallFixedNear";
    /**
     * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).
     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint
     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint
     * - Large (640-1023): 592px width, 32px left/right padding
     * - XLarge (1024-1365): 644px width, 32px left/right padding
     * - XXLarge (1366-up): 644px width, 40px left/right padding
     */
    PanelType[PanelType["medium"] = 3] = "medium";
    /**
     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).
     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint
     * - Medium (480-639):  adapts to `PanelType.smallFixedFar` at this breakpoint
     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint
     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding
     * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding
     */
    PanelType[PanelType["large"] = 4] = "large";
    /**
     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at XX-Large breakpoint.
     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint
     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint
     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint
     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding
     * - XXLarge (1366-up): 940px width, 40px left/right padding
     */
    PanelType[PanelType["largeFixed"] = 5] = "largeFixed";
    /**
     * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).
     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint
     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint
     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint
     * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint
     * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding
     * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding
     */
    PanelType[PanelType["extraLarge"] = 6] = "extraLarge";
    /**
     * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).
     * - Has a fixed width provided by the `customWidth` prop
     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel
     * taking up 100% of the viewport width
     */
    PanelType[PanelType["custom"] = 7] = "custom";
    /**
     * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).
     * - Has a fixed width provided by the `customWidth` prop
     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel
     * taking up 100% of the viewport width
     */
    PanelType[PanelType["customNear"] = 8] = "customNear";
})(PanelType || (PanelType = {}));


/***/ }),

/***/ "./lib/components/Panel/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Panel/Panel.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return _Panel__WEBPACK_IMPORTED_MODULE_0__["Panel"]; });

/* harmony import */ var _Panel_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Panel/Panel.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PanelType", function() { return _Panel_types__WEBPACK_IMPORTED_MODULE_1__["PanelType"]; });





/***/ }),

/***/ "./lib/components/Persona/Persona.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return PersonaBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Tooltip.js");
/* harmony import */ var _PersonaCoin_PersonaCoin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Persona/PersonaCoin/PersonaCoin.js");
/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Persona/Persona.types.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * Persona with no default styles.
 * [Use the `styles` API to add your own styles.](https://github.com/OfficeDev/office-ui-fabric-react/wiki/Styling)
 */
var PersonaBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PersonaBase, _super);
    function PersonaBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onRenderPersonaCoin = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaCoin_PersonaCoin__WEBPACK_IMPORTED_MODULE_4__["PersonaCoin"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props));
        };
        _this._warnDeprecations({ primaryText: 'text' });
        return _this;
    }
    PersonaBase.prototype.render = function () {
        // wrapping default render behavior based on various this.props properties
        var _onRenderPrimaryText = this._onRenderText(this._getText()), _onRenderSecondaryText = this._onRenderText(this.props.secondaryText), _onRenderTertiaryText = this._onRenderText(this.props.tertiaryText), _onRenderOptionalText = this._onRenderText(this.props.optionalText);
        var _a = this.props, hidePersonaDetails = _a.hidePersonaDetails, _b = _a.onRenderOptionalText, onRenderOptionalText = _b === void 0 ? _onRenderOptionalText : _b, _c = _a.onRenderPrimaryText, onRenderPrimaryText = _c === void 0 ? _onRenderPrimaryText : _c, _d = _a.onRenderSecondaryText, onRenderSecondaryText = _d === void 0 ? _onRenderSecondaryText : _d, _e = _a.onRenderTertiaryText, onRenderTertiaryText = _e === void 0 ? _onRenderTertiaryText : _e, _f = _a.onRenderPersonaCoin, onRenderPersonaCoin = _f === void 0 ? this._onRenderPersonaCoin : _f;
        var size = this.props.size;
        // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used
        var _g = this.props, allowPhoneInitials = _g.allowPhoneInitials, className = _g.className, coinProps = _g.coinProps, showUnknownPersonaCoin = _g.showUnknownPersonaCoin, coinSize = _g.coinSize, styles = _g.styles, imageAlt = _g.imageAlt, imageInitials = _g.imageInitials, imageShouldFadeIn = _g.imageShouldFadeIn, imageShouldStartVisible = _g.imageShouldStartVisible, imageUrl = _g.imageUrl, initialsColor = _g.initialsColor, isOutOfOffice = _g.isOutOfOffice, onPhotoLoadingStateChange = _g.onPhotoLoadingStateChange, onRenderCoin = _g.onRenderCoin, onRenderInitials = _g.onRenderInitials, presence = _g.presence, presenceTitle = _g.presenceTitle, showInitialsUntilImageLoads = _g.showInitialsUntilImageLoads, showSecondaryText = _g.showSecondaryText, theme = _g.theme;
        var personaCoinProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ allowPhoneInitials: allowPhoneInitials,
            showUnknownPersonaCoin: showUnknownPersonaCoin,
            coinSize: coinSize,
            imageAlt: imageAlt,
            imageInitials: imageInitials,
            imageShouldFadeIn: imageShouldFadeIn,
            imageShouldStartVisible: imageShouldStartVisible,
            imageUrl: imageUrl,
            initialsColor: initialsColor,
            onPhotoLoadingStateChange: onPhotoLoadingStateChange,
            onRenderCoin: onRenderCoin,
            onRenderInitials: onRenderInitials,
            presence: presence,
            presenceTitle: presenceTitle,
            showInitialsUntilImageLoads: showInitialsUntilImageLoads,
            size: size, text: this._getText(), isOutOfOffice: isOutOfOffice }, coinProps);
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            showSecondaryText: showSecondaryText,
            presence: presence,
            size: size
        });
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var personaDetails = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.details },
            this._renderElement(classNames.primaryText, onRenderPrimaryText, _onRenderPrimaryText),
            this._renderElement(classNames.secondaryText, onRenderSecondaryText, _onRenderSecondaryText),
            this._renderElement(classNames.tertiaryText, onRenderTertiaryText, _onRenderTertiaryText),
            this._renderElement(classNames.optionalText, onRenderOptionalText, _onRenderOptionalText),
            this.props.children));
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),
            onRenderPersonaCoin(personaCoinProps, this._onRenderPersonaCoin),
            (!hidePersonaDetails || (size === _Persona_types__WEBPACK_IMPORTED_MODULE_5__["PersonaSize"].size8 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_5__["PersonaSize"].size10 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_5__["PersonaSize"].tiny)) &&
                personaDetails));
    };
    /**
     * Renders various types of Text (primaryText, secondaryText, etc)
     * based on the classNames passed
     * @param classNames - element className
     * @param renderFunction - render function
     * @param defaultRenderFunction - default render function
     */
    PersonaBase.prototype._renderElement = function (classNames, renderFunction, defaultRenderFunction) {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { dir: "auto", className: classNames }, renderFunction && renderFunction(this.props, defaultRenderFunction)));
    };
    /**
     * Deprecation helper for getting text.
     */
    PersonaBase.prototype._getText = function () {
        return this.props.text || this.props.primaryText || '';
    };
    /**
     * using closure to wrap the default render behavior
     * to make it independent of the type of text passed
     * @param text - text to render
     */
    PersonaBase.prototype._onRenderText = function (text) {
        // return default render behaviour for valid text or undefined
        return text
            ? function () {
                // default onRender behaviour
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Tooltip__WEBPACK_IMPORTED_MODULE_3__["TooltipHost"], { content: text, overflowMode: _Tooltip__WEBPACK_IMPORTED_MODULE_3__["TooltipOverflowMode"].Parent, directionalHint: _Tooltip__WEBPACK_IMPORTED_MODULE_3__["DirectionalHint"].topLeftEdge }, text));
            }
            : undefined;
    };
    PersonaBase.defaultProps = {
        size: _Persona_types__WEBPACK_IMPORTED_MODULE_5__["PersonaSize"].size48,
        presence: _Persona_types__WEBPACK_IMPORTED_MODULE_5__["PersonaPresence"].none,
        imageAlt: ''
    };
    return PersonaBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Persona/Persona.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return Persona; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/Persona.base.js");
/* harmony import */ var _Persona_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Persona/Persona.styles.js");



/**
 * Personas are used for rendering an individual's avatar, presence and details.
 * They are used within the PeoplePicker components.
 */
var Persona = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Persona_base__WEBPACK_IMPORTED_MODULE_1__["PersonaBase"], _Persona_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Persona'
});


/***/ }),

/***/ "./lib/components/Persona/Persona.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");


var GlobalClassNames = {
    root: 'ms-Persona',
    size8: 'ms-Persona--size8',
    size10: 'ms-Persona--size10',
    size16: 'ms-Persona--size16',
    size24: 'ms-Persona--size24',
    size28: 'ms-Persona--size28',
    size32: 'ms-Persona--size32',
    size40: 'ms-Persona--size40',
    size48: 'ms-Persona--size48',
    size56: 'ms-Persona--size56',
    size72: 'ms-Persona--size72',
    size100: 'ms-Persona--size100',
    size120: 'ms-Persona--size120',
    available: 'ms-Persona--online',
    away: 'ms-Persona--away',
    blocked: 'ms-Persona--blocked',
    busy: 'ms-Persona--busy',
    doNotDisturb: 'ms-Persona--donotdisturb',
    offline: 'ms-Persona--offline',
    details: 'ms-Persona-details',
    primaryText: 'ms-Persona-primaryText',
    secondaryText: 'ms-Persona-secondaryText',
    tertiaryText: 'ms-Persona-tertiaryText',
    optionalText: 'ms-Persona-optionalText',
    textContent: 'ms-Persona-textContent'
};
var getStyles = function (props) {
    var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var size = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["sizeBoolean"])(props.size);
    var presence = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["presenceBoolean"])(props.presence);
    var showSecondaryTextDefaultHeight = '16px';
    var sharedTextStyles = {
        color: palette.neutralSecondary,
        fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular,
        fontSize: fonts.small.fontSize
    };
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                color: palette.neutralPrimary,
                position: 'relative',
                height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size48,
                minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size48,
                display: 'flex',
                alignItems: 'center',
                selectors: {
                    '.contextualHost': {
                        display: 'none'
                    }
                }
            },
            size.isSize8 && [
                classNames.size8,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size8,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size8
                }
            ],
            // TODO: Deprecated size and needs to be removed in a future major release.
            size.isSize10 && [
                classNames.size10,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size10,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size10
                }
            ],
            // TODO: Deprecated size and needs to be removed in a future major release.
            size.isSize16 && [
                classNames.size16,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size16,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size16
                }
            ],
            size.isSize24 && [
                classNames.size24,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size24,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size24
                }
            ],
            size.isSize24 &&
                showSecondaryText && {
                height: '36px'
            },
            // TODO: Deprecated size and needs to be removed in a future major release.
            size.isSize28 && [
                classNames.size28,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size28,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size28
                }
            ],
            size.isSize28 &&
                showSecondaryText && {
                height: '32px'
            },
            size.isSize32 && [
                classNames.size32,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size32,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size32
                }
            ],
            size.isSize40 && [
                classNames.size40,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size40,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size40
                }
            ],
            size.isSize48 && classNames.size48,
            size.isSize56 && [
                classNames.size56,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size56,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size56
                }
            ],
            size.isSize72 && [
                classNames.size72,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size72,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size72
                }
            ],
            size.isSize100 && [
                classNames.size100,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size100,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size100
                }
            ],
            size.isSize120 && [
                classNames.size120,
                {
                    height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size120,
                    minWidth: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size120
                }
            ],
            /**
             * Modifiers: presence
             */
            presence.isAvailable && classNames.available,
            presence.isAway && classNames.away,
            presence.isBlocked && classNames.blocked,
            presence.isBusy && classNames.busy,
            presence.isDoNotDisturb && classNames.doNotDisturb,
            presence.isOffline && classNames.offline,
            className
        ],
        details: [
            classNames.details,
            {
                padding: '0 24px 0 16px',
                minWidth: 0,
                width: '100%',
                textAlign: 'left',
                display: 'flex',
                flexDirection: 'column',
                justifyContent: 'space-around'
            },
            (size.isSize8 || size.isSize10) && {
                paddingLeft: 17 // increased padding because we don't render a coin at this size
            },
            (size.isSize24 || size.isSize28 || size.isSize32) && {
                padding: '0 8px'
            },
            (size.isSize40 || size.isSize48) && {
                padding: '0 12px'
            }
        ],
        primaryText: [
            classNames.primaryText,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"],
            {
                color: palette.neutralPrimary,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular,
                fontSize: fonts.medium.fontSize,
                selectors: {
                    ':hover': {
                        color: palette.neutralDark
                    }
                }
            },
            showSecondaryText && {
                height: showSecondaryTextDefaultHeight,
                lineHeight: showSecondaryTextDefaultHeight,
                overflowX: 'hidden'
            },
            (size.isSize8 || size.isSize10) && {
                fontSize: fonts.small.fontSize,
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size8
            },
            size.isSize16 && {
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaSize"].size28
            },
            (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&
                showSecondaryText && {
                height: 18
            },
            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {
                fontSize: fonts.xLarge.fontSize
            },
            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&
                showSecondaryText && {
                height: 22
            }
        ],
        secondaryText: [
            classNames.secondaryText,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"],
            sharedTextStyles,
            (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {
                display: 'none'
            },
            showSecondaryText && {
                display: 'block',
                height: showSecondaryTextDefaultHeight,
                lineHeight: showSecondaryTextDefaultHeight,
                overflowX: 'hidden'
            },
            size.isSize24 &&
                showSecondaryText && {
                height: 18
            },
            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {
                fontSize: fonts.medium.fontSize
            },
            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&
                showSecondaryText && {
                height: 18
            }
        ],
        tertiaryText: [
            classNames.tertiaryText,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"],
            sharedTextStyles,
            {
                display: 'none',
                fontSize: fonts.medium.fontSize
            },
            (size.isSize72 || size.isSize100 || size.isSize120) && {
                display: 'block'
            }
        ],
        optionalText: [
            classNames.optionalText,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"],
            sharedTextStyles,
            {
                display: 'none',
                fontSize: fonts.medium.fontSize
            },
            (size.isSize100 || size.isSize120) && {
                display: 'block'
            }
        ],
        textContent: [classNames.textContent, _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"]]
    };
};


/***/ }),

/***/ "./lib/components/Persona/Persona.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return PersonaSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return PersonaPresence; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return PersonaInitialsColor; });
/**
 * {@docCategory Persona}
 */
var PersonaSize;
(function (PersonaSize) {
    /**
     * `tiny` size has been deprecated in favor of standardized numeric sizing. Use `size8` instead.
     * @deprecated Use `size8` instead.
     */
    PersonaSize[PersonaSize["tiny"] = 0] = "tiny";
    /**
     *
     * `extraExtraSmall` size has been deprecated in favor of standardized numeric sizing. Use `size24` instead.
     * @deprecated Use `size24` instead.
     */
    PersonaSize[PersonaSize["extraExtraSmall"] = 1] = "extraExtraSmall";
    /**
     * `extraSmall` size has been deprecated in favor of standardized numeric sizing. Use `size32` instead.
     * @deprecated Use `size32` instead.
     */
    PersonaSize[PersonaSize["extraSmall"] = 2] = "extraSmall";
    /**
     * `small` size has been deprecated in favor of standardized numeric sizing. Use `size40` instead.
     * @deprecated Use `size40` instead.
     */
    PersonaSize[PersonaSize["small"] = 3] = "small";
    /**
     * `regular` size has been deprecated in favor of standardized numeric sizing. Use `size48` instead.
     * @deprecated Use `size48` instead.
     */
    PersonaSize[PersonaSize["regular"] = 4] = "regular";
    /**
     * `large` size has been deprecated in favor of standardized numeric sizing. Use `size72` instead.
     * @deprecated Use `size72` instead.
     */
    PersonaSize[PersonaSize["large"] = 5] = "large";
    /**
     * `extraLarge` size has been deprecated in favor of standardized numeric sizing. Use `size100` instead.
     * @deprecated Use `size100` instead.
     */
    PersonaSize[PersonaSize["extraLarge"] = 6] = "extraLarge";
    /**
     * No `PersonaCoin` is rendered.
     */
    PersonaSize[PersonaSize["size8"] = 17] = "size8";
    /**
     * No `PersonaCoin` is rendered. Deprecated in favor of `size8` to align with design specifications.
     * @deprecated Use `size8` instead. Will be removed in a future major release.
     */
    PersonaSize[PersonaSize["size10"] = 9] = "size10";
    /**
     * Renders a 16px `PersonaCoin`. Deprecated due to not being in the design specification.
     * @deprecated Will be removed in a future major release.
     */
    PersonaSize[PersonaSize["size16"] = 8] = "size16";
    /**
     * Renders a 24px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size24"] = 10] = "size24";
    /**
     * Renders a 28px `PersonaCoin`. Deprecated due to not being in the design specification.
     * @deprecated Will be removed in a future major release.
     */
    PersonaSize[PersonaSize["size28"] = 7] = "size28";
    /**
     * Renders a 32px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size32"] = 11] = "size32";
    /**
     * Renders a 40px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size40"] = 12] = "size40";
    /**
     * Renders a 48px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size48"] = 13] = "size48";
    /**
     * Renders a 56px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size56"] = 16] = "size56";
    /**
     * Renders a 72px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size72"] = 14] = "size72";
    /**
     * Renders a 100px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size100"] = 15] = "size100";
    /**
     * Renders a 120px `PersonaCoin`.
     */
    PersonaSize[PersonaSize["size120"] = 18] = "size120";
})(PersonaSize || (PersonaSize = {}));
/**
 * {@docCategory Persona}
 */
var PersonaPresence;
(function (PersonaPresence) {
    PersonaPresence[PersonaPresence["none"] = 0] = "none";
    PersonaPresence[PersonaPresence["offline"] = 1] = "offline";
    PersonaPresence[PersonaPresence["online"] = 2] = "online";
    PersonaPresence[PersonaPresence["away"] = 3] = "away";
    PersonaPresence[PersonaPresence["dnd"] = 4] = "dnd";
    PersonaPresence[PersonaPresence["blocked"] = 5] = "blocked";
    PersonaPresence[PersonaPresence["busy"] = 6] = "busy";
})(PersonaPresence || (PersonaPresence = {}));
/**
 * {@docCategory Persona}
 */
var PersonaInitialsColor;
(function (PersonaInitialsColor) {
    PersonaInitialsColor[PersonaInitialsColor["lightBlue"] = 0] = "lightBlue";
    PersonaInitialsColor[PersonaInitialsColor["blue"] = 1] = "blue";
    PersonaInitialsColor[PersonaInitialsColor["darkBlue"] = 2] = "darkBlue";
    PersonaInitialsColor[PersonaInitialsColor["teal"] = 3] = "teal";
    PersonaInitialsColor[PersonaInitialsColor["lightGreen"] = 4] = "lightGreen";
    PersonaInitialsColor[PersonaInitialsColor["green"] = 5] = "green";
    PersonaInitialsColor[PersonaInitialsColor["darkGreen"] = 6] = "darkGreen";
    PersonaInitialsColor[PersonaInitialsColor["lightPink"] = 7] = "lightPink";
    PersonaInitialsColor[PersonaInitialsColor["pink"] = 8] = "pink";
    PersonaInitialsColor[PersonaInitialsColor["magenta"] = 9] = "magenta";
    PersonaInitialsColor[PersonaInitialsColor["purple"] = 10] = "purple";
    /**
     * `black` is a color that can result in offensive persona coins with some initials combinations, so it can only be set with overrides.
     * @deprecated will be removed in a future major release.
     */
    PersonaInitialsColor[PersonaInitialsColor["black"] = 11] = "black";
    PersonaInitialsColor[PersonaInitialsColor["orange"] = 12] = "orange";
    /**
     * `red` is a color that often has a special meaning, so it is considered a reserved color and can only be set with overrides
     * @deprecated will be removed in a future major release.
     */
    PersonaInitialsColor[PersonaInitialsColor["red"] = 13] = "red";
    PersonaInitialsColor[PersonaInitialsColor["darkRed"] = 14] = "darkRed";
    /**
     * Transparent is not intended to be used with typical initials due to accessibility issues.
     * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.
     */
    PersonaInitialsColor[PersonaInitialsColor["transparent"] = 15] = "transparent";
    PersonaInitialsColor[PersonaInitialsColor["violet"] = 16] = "violet";
    PersonaInitialsColor[PersonaInitialsColor["lightRed"] = 17] = "lightRed";
    PersonaInitialsColor[PersonaInitialsColor["gold"] = 18] = "gold";
    PersonaInitialsColor[PersonaInitialsColor["burgundy"] = 19] = "burgundy";
    PersonaInitialsColor[PersonaInitialsColor["warmGray"] = 20] = "warmGray";
    PersonaInitialsColor[PersonaInitialsColor["coolGray"] = 21] = "coolGray";
    /**
     * `gray` is a color that can result in offensive persona coins with some initials combinations, so it can only be set with overrides
     */
    PersonaInitialsColor[PersonaInitialsColor["gray"] = 22] = "gray";
    PersonaInitialsColor[PersonaInitialsColor["cyan"] = 23] = "cyan";
    PersonaInitialsColor[PersonaInitialsColor["rust"] = 24] = "rust";
})(PersonaInitialsColor || (PersonaInitialsColor = {}));


/***/ }),

/***/ "./lib/components/Persona/PersonaCoin/PersonaCoin.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return PersonaCoinBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _PersonaPresence_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Persona/PersonaPresence/index.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Image.js");
/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Persona/Persona.types.js");
/* harmony import */ var _PersonaInitialsColor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/Persona/PersonaInitialsColor.js");
/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");










var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * PersonaCoin with no default styles.
 * [Use the `getStyles` API to add your own styles.](https://github.com/OfficeDev/office-ui-fabric-react/wiki/Styling)
 */
var PersonaCoinBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PersonaCoinBase, _super);
    function PersonaCoinBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onRenderCoin = function (props) {
            var _a = _this.props, coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin;
            // Render the Image component only if an image URL is provided
            if (!imageUrl) {
                return null;
            }
            var size = _this.props.size;
            var classNames = getClassNames(styles, {
                theme: theme,
                size: size,
                showUnknownPersonaCoin: showUnknownPersonaCoin
            });
            var dimension = coinSize || _PersonaConsts__WEBPACK_IMPORTED_MODULE_9__["sizeToPixels"][size];
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_6__["Image"], { className: classNames.image, imageFit: _Image__WEBPACK_IMPORTED_MODULE_6__["ImageFit"].cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: _this._onPhotoLoadingStateChange }));
        };
        _this._onRenderInitials = function (props) {
            var imageInitials = props.imageInitials;
            var allowPhoneInitials = props.allowPhoneInitials, showUnknownPersonaCoin = props.showUnknownPersonaCoin;
            if (showUnknownPersonaCoin) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: "Help" });
            }
            var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])();
            imageInitials = imageInitials || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getInitials"])(_this._getText(), isRTL, allowPhoneInitials);
            return imageInitials !== '' ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", null, imageInitials) : react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: "Contact" });
        };
        _this._onPhotoLoadingStateChange = function (loadState) {
            _this.setState({
                isImageLoaded: loadState === _Image__WEBPACK_IMPORTED_MODULE_6__["ImageLoadState"].loaded,
                isImageError: loadState === _Image__WEBPACK_IMPORTED_MODULE_6__["ImageLoadState"].error
            });
            _this.props.onPhotoLoadingStateChange && _this.props.onPhotoLoadingStateChange(loadState);
        };
        _this._warnDeprecations({ primaryText: 'text' });
        _this.state = {
            isImageLoaded: false,
            isImageError: false
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    PersonaCoinBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        if (nextProps.imageUrl !== this.props.imageUrl) {
            this.setState({
                isImageLoaded: false,
                isImageError: false
            });
        }
    };
    PersonaCoinBase.prototype.render = function () {
        var _a = this.props, className = _a.className, coinProps = _a.coinProps, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, isOutOfOffice = _a.isOutOfOffice, _b = _a.onRenderCoin, onRenderCoin = _b === void 0 ? this._onRenderCoin : _b, _c = _a.onRenderInitials, onRenderInitials = _c === void 0 ? this._onRenderInitials : _c, presence = _a.presence, presenceTitle = _a.presenceTitle, showInitialsUntilImageLoads = _a.showInitialsUntilImageLoads, theme = _a.theme;
        var size = this.props.size;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var divCoinProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(coinProps || {}, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;
        var hideImage = showUnknownPersonaCoin;
        var personaPresenceProps = {
            coinSize: coinSize,
            isOutOfOffice: isOutOfOffice,
            presence: presence,
            presenceTitle: presenceTitle,
            size: size,
            theme: theme
        };
        // Use getStyles from props, or fall back to getStyles from styles file.
        var classNames = getClassNames(styles, {
            theme: theme,
            className: coinProps && coinProps.className ? coinProps.className : className,
            size: size,
            coinSize: coinSize,
            showUnknownPersonaCoin: showUnknownPersonaCoin
        });
        var shouldRenderInitials = Boolean(!this.state.isImageLoaded && ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || this.state.isImageError || hideImage));
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: classNames.coin }),
            size !== _Persona_types__WEBPACK_IMPORTED_MODULE_7__["PersonaSize"].size8 && size !== _Persona_types__WEBPACK_IMPORTED_MODULE_7__["PersonaSize"].size10 && size !== _Persona_types__WEBPACK_IMPORTED_MODULE_7__["PersonaSize"].tiny ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),
                shouldRenderInitials && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Styling__WEBPACK_IMPORTED_MODULE_3__["mergeStyles"])(classNames.initials, !showUnknownPersonaCoin && { backgroundColor: Object(_PersonaInitialsColor__WEBPACK_IMPORTED_MODULE_8__["getPersonaInitialsColor"])(this.props) }), style: coinSizeStyle, "aria-hidden": "true" }, onRenderInitials(this.props, this._onRenderInitials))),
                !hideImage && onRenderCoin(this.props, this._onRenderCoin),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaPresence_index__WEBPACK_IMPORTED_MODULE_4__["PersonaPresence"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.
                this.props.presence ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PersonaPresence_index__WEBPACK_IMPORTED_MODULE_4__["PersonaPresence"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, personaPresenceProps))) : (
                // Just render Contact Icon if there isn't a Presence prop.
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_5__["Icon"], { iconName: "Contact", className: classNames.size10WithoutPresenceIcon })),
            this.props.children));
    };
    /**
     * Deprecation helper for getting text.
     */
    PersonaCoinBase.prototype._getText = function () {
        return this.props.text || this.props.primaryText || '';
    };
    PersonaCoinBase.defaultProps = {
        size: _Persona_types__WEBPACK_IMPORTED_MODULE_7__["PersonaSize"].size48,
        presence: _Persona_types__WEBPACK_IMPORTED_MODULE_7__["PersonaPresence"].none,
        imageAlt: ''
    };
    return PersonaCoinBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Persona/PersonaCoin/PersonaCoin.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return PersonaCoin; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _PersonaCoin_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaCoin/PersonaCoin.base.js");
/* harmony import */ var _PersonaCoin_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Persona/PersonaCoin/PersonaCoin.styles.js");



/**
 * PersonaCoin is used to render an individual's avatar and presence.
 */
var PersonaCoin = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_PersonaCoin_base__WEBPACK_IMPORTED_MODULE_1__["PersonaCoinBase"], _PersonaCoin_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'PersonaCoin'
});


/***/ }),

/***/ "./lib/components/Persona/PersonaCoin/PersonaCoin.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");


var GlobalClassNames = {
    coin: 'ms-Persona-coin',
    imageArea: 'ms-Persona-imageArea',
    image: 'ms-Persona-image',
    initials: 'ms-Persona-initials',
    size8: 'ms-Persona--size8',
    size10: 'ms-Persona--size10',
    size16: 'ms-Persona--size16',
    size24: 'ms-Persona--size24',
    size28: 'ms-Persona--size28',
    size32: 'ms-Persona--size32',
    size40: 'ms-Persona--size40',
    size48: 'ms-Persona--size48',
    size56: 'ms-Persona--size56',
    size72: 'ms-Persona--size72',
    size100: 'ms-Persona--size100',
    size120: 'ms-Persona--size120'
};
var getStyles = function (props) {
    var _a;
    var className = props.className, theme = props.theme, coinSize = props.coinSize;
    var palette = theme.palette, fonts = theme.fonts;
    var size = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["sizeBoolean"])(props.size);
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    // Static colors used when displaying 'unknown persona' coin
    var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';
    var unknownPersonaFontColor = 'rgb(168, 0, 0)';
    var dimension = coinSize || (props.size && _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["sizeToPixels"][props.size]) || 48;
    return {
        coin: [
            classNames.coin,
            fonts.medium,
            size.isSize8 && classNames.size8,
            size.isSize10 && classNames.size10,
            size.isSize16 && classNames.size16,
            size.isSize24 && classNames.size24,
            size.isSize28 && classNames.size28,
            size.isSize32 && classNames.size32,
            size.isSize40 && classNames.size40,
            size.isSize48 && classNames.size48,
            size.isSize56 && classNames.size56,
            size.isSize72 && classNames.size72,
            size.isSize100 && classNames.size100,
            size.isSize120 && classNames.size120,
            className
        ],
        size10WithoutPresenceIcon: {
            fontSize: fonts.xSmall.fontSize,
            position: 'absolute',
            top: '5px',
            right: 'auto',
            left: 0
        },
        imageArea: [
            classNames.imageArea,
            {
                position: 'relative',
                textAlign: 'center',
                flex: '0 0 auto',
                height: dimension,
                width: dimension
            },
            dimension <= 10 && {
                overflow: 'visible',
                background: 'transparent',
                height: 0,
                width: 0
            }
        ],
        image: [
            classNames.image,
            {
                marginRight: '10px',
                position: 'absolute',
                top: 0,
                left: 0,
                width: '100%',
                height: '100%',
                border: 0,
                borderRadius: '50%',
                perspective: '1px'
            },
            dimension <= 10 && {
                overflow: 'visible',
                background: 'transparent',
                height: 0,
                width: 0
            },
            dimension > 10 && {
                height: dimension,
                width: dimension
            }
        ],
        initials: [
            classNames.initials,
            {
                borderRadius: '50%',
                color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,
                fontSize: fonts.large.fontSize,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                lineHeight: dimension === 48 ? 46 : dimension,
                height: dimension,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText',
                        MsHighContrastAdjust: 'none',
                        color: 'WindowText',
                        boxSizing: 'border-box',
                        backgroundColor: 'Window !important'
                    },
                    _a.i = {
                        fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
                    },
                    _a)
            },
            props.showUnknownPersonaCoin && {
                backgroundColor: unknownPersonaBackgroundColor
            },
            dimension < 32 && {
                fontSize: fonts.xSmall.fontSize
            },
            dimension >= 32 &&
                dimension < 40 && {
                fontSize: fonts.medium.fontSize
            },
            dimension >= 40 &&
                dimension < 56 && {
                fontSize: fonts.mediumPlus.fontSize
            },
            dimension >= 56 &&
                dimension < 72 && {
                fontSize: fonts.xLarge.fontSize
            },
            dimension >= 72 &&
                dimension < 100 && {
                fontSize: fonts.xxLarge.fontSize
            },
            dimension >= 100 && {
                fontSize: fonts.superLarge.fontSize
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Persona/PersonaCoin/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _PersonaCoin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/PersonaCoin/PersonaCoin.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _PersonaCoin__WEBPACK_IMPORTED_MODULE_0__["PersonaCoin"]; });

/* harmony import */ var _PersonaCoin_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaCoin/PersonaCoin.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _PersonaCoin_base__WEBPACK_IMPORTED_MODULE_1__["PersonaCoinBase"]; });





/***/ }),

/***/ "./lib/components/Persona/PersonaConsts.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return personaSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return personaPresenceSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return sizeBoolean; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return sizeToPixels; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return presenceBoolean; });
/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/Persona.types.js");
var _a;

// Persona Sizes
var personaSize;
(function (personaSize) {
    personaSize.size8 = '20px';
    // TODO: remove in a future major release as it's deprecated.
    personaSize.size10 = '20px';
    // TODO: remove in a future major release as it's deprecated.
    personaSize.size16 = '16px';
    personaSize.size24 = '24px';
    // TODO: remove in a future major release as it's deprecated.
    personaSize.size28 = '28px';
    personaSize.size32 = '32px';
    personaSize.size40 = '40px';
    personaSize.size48 = '48px';
    personaSize.size56 = '56px';
    personaSize.size72 = '72px';
    personaSize.size100 = '100px';
    personaSize.size120 = '120px';
})(personaSize || (personaSize = {}));
// Persona Presence Sizes
var personaPresenceSize;
(function (personaPresenceSize) {
    personaPresenceSize.size6 = '6px';
    personaPresenceSize.size8 = '8px';
    personaPresenceSize.size12 = '12px';
    personaPresenceSize.size16 = '16px';
    personaPresenceSize.size20 = '20px';
    personaPresenceSize.size28 = '28px';
    personaPresenceSize.size32 = '32px';
    /**
     * @deprecated This is now unused
     */
    personaPresenceSize.border = '2px';
})(personaPresenceSize || (personaPresenceSize = {}));
// TODO: remove the deprecated parts in a future major release.
var sizeBoolean = function (size) { return ({
    isSize8: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size8,
    isSize10: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size10 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].tiny,
    isSize16: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size16,
    isSize24: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size24 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraExtraSmall,
    isSize28: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size28 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraSmall,
    isSize32: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size32,
    isSize40: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size40 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].small,
    isSize48: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size48 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].regular,
    isSize56: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size56,
    isSize72: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size72 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].large,
    isSize100: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size100 || size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraLarge,
    isSize120: size === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size120
}); };
var sizeToPixels = (_a = {},
    // Old deprecated sizes
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].tiny] = 10,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraExtraSmall] = 24,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraSmall] = 28,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].small] = 40,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].regular] = 48,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].large] = 72,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].extraLarge] = 100,
    // New sizes
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size8] = 8,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size10] = 10,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size16] = 16,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size24] = 24,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size28] = 28,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size32] = 32,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size40] = 40,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size48] = 48,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size56] = 56,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size72] = 72,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size100] = 100,
    _a[_Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"].size120] = 120,
    _a);
var presenceBoolean = function (presence) { return ({
    isAvailable: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].online,
    isAway: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].away,
    isBlocked: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].blocked,
    isBusy: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].busy,
    isDoNotDisturb: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].dnd,
    isOffline: presence === _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"].offline
}); };


/***/ }),

/***/ "./lib/components/Persona/PersonaInitialsColor.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialsColorPropToColorCode", function() { return initialsColorPropToColorCode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return getPersonaInitialsColor; });
/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/Persona.types.js");

/**
 * Following colors are considered reserved colors and can only be set with overrides, so they are excluded from this set:
 * - `gray` and `black` are colors that can result in offensive persona coins with some initials combinations,
 *   so it can only be set with overrides.
 * - `red` is a color that often has a special meaning, so it is considered a reserved color and can only be set with overrides.
 * - `transparent` is not intended to be used with typical initials due to accessibility issues,
 *   its primary use is for Facepile overflow buttons.
 */
var COLOR_SWATCHES_LOOKUP = [
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightBlue,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].blue,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkBlue,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].teal,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].green,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkGreen,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightPink,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].pink,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].magenta,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].purple,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].orange,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightRed,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkRed,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].violet,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].gold,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].burgundy,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].warmGray,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].cyan,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].rust,
    _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].coolGray
];
var COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;
function getInitialsColorFromName(displayName) {
    var color = _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].blue;
    if (!displayName) {
        return color;
    }
    var hashCode = 0;
    for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {
        var ch = displayName.charCodeAt(iLen);
        var shift = iLen % 8;
        // tslint:disable-next-line:no-bitwise
        hashCode ^= (ch << shift) + (ch >> (8 - shift));
    }
    color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];
    return color;
}
function personaInitialsColorToHexCode(personaInitialsColor) {
    switch (personaInitialsColor) {
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightBlue:
            return '#4F6BED';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].blue:
            return '#0078D4';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkBlue:
            return '#004E8C';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].teal:
            return '#038387';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightGreen:
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].green:
            return '#498205';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkGreen:
            return '#0B6A0B';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightPink:
            return '#C239B3';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].pink:
            return '#E3008C';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].magenta:
            return '#881798';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].purple:
            return '#5C2E91';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].orange:
            return '#CA5010';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].red:
            return '#EE1111';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].lightRed:
            return '#D13438';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].darkRed:
            return '#A4262C';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].transparent:
            return 'transparent';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].violet:
            return '#8764B8';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].gold:
            return '#986F0B';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].burgundy:
            return '#750B1C';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].warmGray:
            return '#7A7574';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].cyan:
            return '#005B70';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].rust:
            return '#8E562E';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].coolGray:
            return '#69797E';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].black:
            return '#1D1D1D';
        case _Persona_types__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"].gray:
            return '#393939';
    }
}
/** @deprecated Use `getPersonaInitialsColor` */
function initialsColorPropToColorCode(props) {
    return getPersonaInitialsColor(props);
}
/**
 * Gets the hex color string (prefixed with #) for the given persona props.
 * This is the logic used internally by the Persona control.
 * @param props - Current persona props
 * @returns Hex color string prefixed with #
 */
function getPersonaInitialsColor(props) {
    var primaryText = props.primaryText, text = props.text;
    var initialsColor = props.initialsColor;
    var initialsColorCode;
    if (typeof initialsColor === 'string') {
        initialsColorCode = initialsColor;
    }
    else {
        initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);
        initialsColorCode = personaInitialsColorToHexCode(initialsColor);
    }
    return initialsColorCode;
}


/***/ }),

/***/ "./lib/components/Persona/PersonaPresence/PersonaPresence.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaPresenceBase", function() { return PersonaPresenceBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Persona/Persona.types.js");
/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");






var coinSizeFontScaleFactor = 6;
var coinSizePresenceScaleFactor = 3;
var presenceMaxSize = 40;
var presenceFontMaxSize = 20;
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * PersonaPresence with no default styles.
 * [Use the `getStyles` API to add your own styles.](https://github.com/OfficeDev/office-ui-fabric-react/wiki/Styling)
 */
var PersonaPresenceBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PersonaPresenceBase, _super);
    function PersonaPresenceBase(props) {
        var _this = _super.call(this, props) || this;
        _this._onRenderIcon = function (className, style) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], { className: className, iconName: determineIcon(_this.props.presence, _this.props.isOutOfOffice), style: style })); };
        return _this;
    }
    PersonaPresenceBase.prototype.render = function () {
        var _a = this.props, coinSize = _a.coinSize, isOutOfOffice = _a.isOutOfOffice, styles = _a.styles, // Use getStyles from props.
        presence = _a.presence, theme = _a.theme, presenceTitle = _a.presenceTitle;
        var size = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_5__["sizeBoolean"])(this.props.size);
        // Render Presence Icon if Persona is above size 32.
        var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&
            (coinSize ? coinSize > 32 : true);
        var presenceHeightWidth = coinSize
            ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize
                ? coinSize / coinSizePresenceScaleFactor + 'px'
                : presenceMaxSize + 'px'
            : '';
        var presenceFontSize = coinSize
            ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize
                ? coinSize / coinSizeFontScaleFactor + 'px'
                : presenceFontMaxSize + 'px'
            : '';
        var coinSizeWithPresenceIconStyle = coinSize ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth } : undefined;
        var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;
        // Use getStyles from props, or fall back to getStyles from styles file.
        var classNames = getClassNames(styles, {
            theme: theme,
            presence: presence,
            size: this.props.size,
            isOutOfOffice: isOutOfOffice
        });
        if (presence === _Persona_types__WEBPACK_IMPORTED_MODULE_4__["PersonaPresence"].none) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle }, renderIcon && this._onRenderIcon(classNames.presenceIcon, coinSizeWithPresenceIconStyle)));
    };
    return PersonaPresenceBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

function determineIcon(presence, isOutOfOffice) {
    if (!presence) {
        return undefined;
    }
    var oofIcon = 'SkypeArrow';
    switch (_Persona_types__WEBPACK_IMPORTED_MODULE_4__["PersonaPresence"][presence]) {
        case 'online':
            return 'SkypeCheck';
        case 'away':
            return isOutOfOffice ? oofIcon : 'SkypeClock';
        case 'dnd':
            return 'SkypeMinus';
        case 'offline':
            return isOutOfOffice ? oofIcon : '';
    }
    return '';
}


/***/ }),

/***/ "./lib/components/Persona/PersonaPresence/PersonaPresence.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return PersonaPresence; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _PersonaPresence_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaPresence/PersonaPresence.base.js");
/* harmony import */ var _PersonaPresence_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Persona/PersonaPresence/PersonaPresence.styles.js");



/**
 * PersonaPresence is used to render an individual's presence.
 */
var PersonaPresence = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_PersonaPresence_base__WEBPACK_IMPORTED_MODULE_1__["PersonaPresenceBase"], _PersonaPresence_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'PersonaPresence' });


/***/ }),

/***/ "./lib/components/Persona/PersonaPresence/PersonaPresence.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");


var GlobalClassNames = {
    presence: 'ms-Persona-presence',
    presenceIcon: 'ms-Persona-presenceIcon'
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f;
    var theme = props.theme;
    var semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var size = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["sizeBoolean"])(props.size);
    var presence = Object(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["presenceBoolean"])(props.presence);
    // Presence colors
    var presenceColorAvailable = '#6BB700';
    var presenceColorAway = '#FFAA44';
    var presenceColorBusy = '#C43148';
    var presenceColorDnd = '#C50F1F';
    var presenceColorOffline = '#8A8886';
    var presenceColorOof = '#B4009E';
    var isOpenCirclePresence = presence.isOffline || (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));
    var borderSizeForSmallPersonas = '1px';
    var borderSizeForLargePersonas = '2px';
    var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;
    return {
        presence: [
            classNames.presence,
            {
                position: 'absolute',
                height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size12,
                width: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size12,
                borderRadius: '50%',
                top: 'auto',
                right: '-2px',
                bottom: '-2px',
                border: "2px solid " + semanticColors.bodyBackground,
                textAlign: 'center',
                boxSizing: 'content-box',
                backgroundClip: 'content-box',
                MsHighContrastAdjust: 'none',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'Window',
                        backgroundColor: 'WindowText'
                    },
                    _a)
            },
            (size.isSize8 || size.isSize10) && {
                right: 'auto',
                top: '7px',
                left: 0,
                border: 0,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        top: '9px',
                        border: '1px solid WindowText'
                    },
                    _b)
            },
            (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size8),
            (size.isSize40 || size.isSize48) && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size12),
            size.isSize16 && {
                height: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size6,
                width: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size6,
                borderWidth: '1.5px'
            },
            size.isSize56 && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size16),
            size.isSize72 && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size20),
            size.isSize100 && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size28),
            size.isSize120 && makeSizeStyle(_PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size32),
            presence.isAvailable && {
                backgroundColor: presenceColorAvailable,
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = backgroundColor('Highlight'),
                    _c)
            },
            presence.isAway && backgroundColor(presenceColorAway),
            presence.isBlocked && [
                {
                    selectors: (_d = {
                            // Only show :after at larger sizes
                            ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100
                                ? {
                                    content: '""',
                                    width: '100%',
                                    height: borderSize,
                                    backgroundColor: presenceColorBusy,
                                    transform: 'translateY(-50%) rotate(-45deg)',
                                    position: 'absolute',
                                    top: '50%',
                                    left: 0
                                }
                                : undefined
                        },
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            selectors: {
                                ':after': {
                                    width: "calc(100% - 4px)",
                                    left: '2px',
                                    backgroundColor: 'Window'
                                }
                            }
                        },
                        _d)
                }
            ],
            presence.isBusy && backgroundColor(presenceColorBusy),
            presence.isDoNotDisturb && backgroundColor(presenceColorDnd),
            presence.isOffline && backgroundColor(presenceColorOffline),
            (isOpenCirclePresence || presence.isBlocked) && [
                {
                    backgroundColor: semanticColors.bodyBackground,
                    selectors: (_e = {
                            ':before': {
                                content: '""',
                                width: '100%',
                                height: '100%',
                                position: 'absolute',
                                top: 0,
                                left: 0,
                                border: borderSize + " solid " + presenceColorBusy,
                                borderRadius: '50%',
                                boxSizing: 'border-box'
                            }
                        },
                        _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            backgroundColor: 'WindowText',
                            selectors: {
                                ':before': {
                                    width: "calc(100% - 2px)",
                                    height: "calc(100% - 2px)",
                                    top: '1px',
                                    left: '1px',
                                    borderColor: 'Window'
                                }
                            }
                        },
                        _e)
                }
            ],
            isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),
            isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),
            isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),
            isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),
            isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),
            isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeBeforeBorderStyle(borderSize, presenceColorOof)
        ],
        presenceIcon: [
            classNames.presenceIcon,
            {
                color: semanticColors.bodyBackground,
                fontSize: '6px',
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size12,
                verticalAlign: 'top',
                selectors: (_f = {},
                    _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'Window'
                    },
                    _f)
            },
            size.isSize56 && {
                fontSize: '8px',
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size16
            },
            size.isSize72 && {
                fontSize: fonts.small.fontSize,
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size20
            },
            size.isSize100 && {
                fontSize: fonts.medium.fontSize,
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size28
            },
            size.isSize120 && {
                fontSize: fonts.medium.fontSize,
                lineHeight: _PersonaConsts__WEBPACK_IMPORTED_MODULE_1__["personaPresenceSize"].size32
            },
            presence.isAway && {
                position: 'relative',
                left: isOpenCirclePresence ? undefined : '1px'
            },
            isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),
            isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),
            isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),
            isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),
            isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),
            isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof)
        ]
    };
};
function makeOpenCircleIconStyle(color) {
    return {
        color: color,
        borderColor: color
    };
}
function makeBeforeBorderStyle(borderSize, color) {
    return {
        selectors: {
            ':before': {
                border: borderSize + " solid " + color
            }
        }
    };
}
function makeSizeStyle(size) {
    return {
        height: size,
        width: size
    };
}
function backgroundColor(color) {
    return { backgroundColor: color };
}


/***/ }),

/***/ "./lib/components/Persona/PersonaPresence/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _PersonaPresence__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/PersonaPresence/PersonaPresence.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _PersonaPresence__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"]; });

/* harmony import */ var _PersonaPresence_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/PersonaPresence/PersonaPresence.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresenceBase", function() { return _PersonaPresence_base__WEBPACK_IMPORTED_MODULE_1__["PersonaPresenceBase"]; });





/***/ }),

/***/ "./lib/components/Persona/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Persona/Persona.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return _Persona__WEBPACK_IMPORTED_MODULE_0__["Persona"]; });

/* harmony import */ var _Persona_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Persona/Persona.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return _Persona_base__WEBPACK_IMPORTED_MODULE_1__["PersonaBase"]; });

/* harmony import */ var _Persona_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Persona/Persona.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return _Persona_types__WEBPACK_IMPORTED_MODULE_2__["PersonaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _Persona_types__WEBPACK_IMPORTED_MODULE_2__["PersonaPresence"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return _Persona_types__WEBPACK_IMPORTED_MODULE_2__["PersonaInitialsColor"]; });

/* harmony import */ var _PersonaCoin_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Persona/PersonaCoin/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _PersonaCoin_index__WEBPACK_IMPORTED_MODULE_3__["PersonaCoin"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _PersonaCoin_index__WEBPACK_IMPORTED_MODULE_3__["PersonaCoinBase"]; });

/* harmony import */ var _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Persona/PersonaConsts.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__["personaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__["personaPresenceSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__["sizeBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__["sizeToPixels"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return _PersonaConsts__WEBPACK_IMPORTED_MODULE_4__["presenceBoolean"]; });

/* harmony import */ var _PersonaInitialsColor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Persona/PersonaInitialsColor.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return _PersonaInitialsColor__WEBPACK_IMPORTED_MODULE_5__["getPersonaInitialsColor"]; });






// Exporting in case someone would like to track the current color of a persona



/***/ }),

/***/ "./lib/components/Pivot/Pivot.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PivotBase", function() { return PivotBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _PivotItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Pivot/PivotItem.js");
/* harmony import */ var _Pivot_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Pivot/Pivot.types.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Icon.js");









var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 *  Usage:
 *
 *     <Pivot>
 *       <PivotItem headerText="Foo">
 *         <Label>Pivot #1</Label>
 *       </PivotItem>
 *       <PivotItem headerText="Bar">
 *         <Label>Pivot #2</Label>
 *       </PivotItem>
 *       <PivotItem headerText="Bas">
 *         <Label>Pivot #3</Label>
 *       </PivotItem>
 *     </Pivot>
 */
var PivotBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PivotBase, _super);
    function PivotBase(props) {
        var _this = _super.call(this, props) || this;
        _this._focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._renderPivotLink = function (linkCollection, link, selectedKey) {
            var itemKey = link.itemKey, headerButtonProps = link.headerButtonProps;
            var tabId = linkCollection.keyToTabIdMapping[itemKey];
            var onRenderItemLink = link.onRenderItemLink;
            var linkContent;
            var isSelected = selectedKey === itemKey;
            if (onRenderItemLink) {
                linkContent = onRenderItemLink(link, _this._renderLinkContent);
            }
            else {
                linkContent = _this._renderLinkContent(link);
            }
            var contentString = link.headerText || '';
            contentString += link.itemCount ? ' (' + link.itemCount + ')' : '';
            // Adding space supplementary for icon
            contentString += link.itemIcon ? ' xx' : '';
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["CommandButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, headerButtonProps, { id: tabId, key: itemKey, className: isSelected ? _this._classNames.linkIsSelected : _this._classNames.link, onClick: _this._onLinkClick.bind(_this, itemKey), onKeyPress: _this._onKeyPress.bind(_this, itemKey), ariaLabel: link.ariaLabel, role: "tab", "aria-selected": isSelected, name: link.headerText, keytipProps: link.keytipProps, "data-content": contentString }), linkContent));
        };
        _this._renderLinkContent = function (link) {
            var itemCount = link.itemCount, itemIcon = link.itemIcon, headerText = link.headerText;
            var classNames = _this._classNames;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.linkContent },
                itemIcon !== undefined && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.icon },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_7__["Icon"], { iconName: itemIcon }))),
                headerText !== undefined && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.text },
                    " ",
                    link.headerText),
                itemCount !== undefined && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.count },
                    " (",
                    itemCount,
                    ")")));
        };
        _this._warnDeprecations({
            initialSelectedKey: 'defaultSelectedKey',
            initialSelectedIndex: 'defaultSelectedIndex'
        });
        _this._pivotId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Pivot');
        var links = _this._getPivotLinks(props).links;
        var _a = props.defaultSelectedKey, defaultSelectedKey = _a === void 0 ? props.initialSelectedKey : _a, _b = props.defaultSelectedIndex, defaultSelectedIndex = _b === void 0 ? props.initialSelectedIndex : _b;
        var selectedKey;
        if (defaultSelectedKey) {
            selectedKey = defaultSelectedKey;
        }
        else if (typeof defaultSelectedIndex === 'number') {
            selectedKey = links[defaultSelectedIndex].itemKey;
        }
        else if (links.length) {
            selectedKey = links[0].itemKey;
        }
        _this.state = {
            selectedKey: selectedKey
        };
        return _this;
    }
    /**
     * Sets focus to the first pivot tab.
     */
    PivotBase.prototype.focus = function () {
        if (this._focusZone.current) {
            this._focusZone.current.focus();
        }
    };
    PivotBase.prototype.render = function () {
        var linkCollection = this._getPivotLinks(this.props);
        var selectedKey = this._getSelectedKey(linkCollection);
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        this._classNames = this._getClassNames(this.props);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps),
            this._renderPivotLinks(linkCollection, selectedKey),
            selectedKey && this._renderPivotItem(linkCollection, selectedKey)));
    };
    PivotBase.prototype._getSelectedKey = function (linkCollection) {
        var propsSelectedKey = this.props.selectedKey;
        if (this._isKeyValid(linkCollection, propsSelectedKey) || propsSelectedKey === null) {
            return propsSelectedKey;
        }
        var stateSelectedKey = this.state.selectedKey;
        if (this._isKeyValid(linkCollection, stateSelectedKey)) {
            return stateSelectedKey;
        }
        if (linkCollection.links.length) {
            return linkCollection.links[0].itemKey;
        }
        return undefined;
    };
    /**
     * Renders the set of links to route between pivots
     */
    PivotBase.prototype._renderPivotLinks = function (linkCollection, selectedKey) {
        var _this = this;
        var items = linkCollection.links.map(function (l) { return _this._renderPivotLink(linkCollection, l, selectedKey); });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZone"], { componentRef: this._focusZone, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZoneDirection"].horizontal },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root, role: "tablist" }, items)));
    };
    /**
     * Renders the current Pivot Item
     */
    PivotBase.prototype._renderPivotItem = function (linkCollection, itemKey) {
        if (this.props.headersOnly || !itemKey) {
            return null;
        }
        var index = linkCollection.keyToIndexMapping[itemKey];
        var selectedTabId = linkCollection.keyToTabIdMapping[itemKey];
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "tabpanel", "aria-labelledby": selectedTabId, className: this._classNames.itemContainer }, react__WEBPACK_IMPORTED_MODULE_1__["Children"].toArray(this.props.children)[index]));
    };
    /**
     * Gets the set of PivotLinks as array of IPivotItemProps
     * The set of Links is determined by child components of type PivotItem
     */
    PivotBase.prototype._getPivotLinks = function (props) {
        var _this = this;
        var result = {
            links: [],
            keyToIndexMapping: {},
            keyToTabIdMapping: {}
        };
        react__WEBPACK_IMPORTED_MODULE_1__["Children"].map(react__WEBPACK_IMPORTED_MODULE_1__["Children"].toArray(props.children), function (child, index) {
            if (_isPivotItem(child)) {
                var pivotItem = child;
                var _a = pivotItem.props, linkText = _a.linkText, pivotItemProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](_a, ["linkText"]);
                var itemKey = pivotItem.props.itemKey || index.toString();
                result.links.push(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ 
                    // Use linkText (deprecated) if headerText is not provided
                    headerText: linkText }, pivotItemProps, { itemKey: itemKey }));
                result.keyToIndexMapping[itemKey] = index;
                result.keyToTabIdMapping[itemKey] = _this._getTabId(itemKey, index);
            }
            else {
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warn"])('The children of a Pivot component must be of type PivotItem to be rendered.');
            }
        });
        return result;
    };
    /**
     * Generates the Id for the tab button.
     */
    PivotBase.prototype._getTabId = function (itemKey, index) {
        if (this.props.getTabId) {
            return this.props.getTabId(itemKey, index);
        }
        return this._pivotId + ("-Tab" + index);
    };
    /**
     * whether the key exists in the pivot items.
     */
    PivotBase.prototype._isKeyValid = function (linkCollection, itemKey) {
        return itemKey !== undefined && itemKey !== null && linkCollection.keyToIndexMapping[itemKey] !== undefined;
    };
    /**
     * Handles the onClick event on PivotLinks
     */
    PivotBase.prototype._onLinkClick = function (itemKey, ev) {
        ev.preventDefault();
        this._updateSelectedItem(itemKey, ev);
    };
    /**
     * Handle the onKeyPress eventon the PivotLinks
     */
    PivotBase.prototype._onKeyPress = function (itemKey, ev) {
        if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
            ev.preventDefault();
            this._updateSelectedItem(itemKey);
        }
    };
    /**
     * Updates the state with the new selected index
     */
    PivotBase.prototype._updateSelectedItem = function (itemKey, ev) {
        this.setState({
            selectedKey: itemKey
        });
        var linkCollection = this._getPivotLinks(this.props);
        if (this.props.onLinkClick && linkCollection.keyToIndexMapping[itemKey] >= 0) {
            var index = linkCollection.keyToIndexMapping[itemKey];
            // React.Element<any> cannot directly convert to PivotItem.
            var item = react__WEBPACK_IMPORTED_MODULE_1__["Children"].toArray(this.props.children)[index];
            if (_isPivotItem(item)) {
                this.props.onLinkClick(item, ev);
            }
        }
    };
    PivotBase.prototype._getClassNames = function (props) {
        var theme = props.theme;
        var rootIsLarge = props.linkSize === _Pivot_types__WEBPACK_IMPORTED_MODULE_6__["PivotLinkSize"].large;
        var rootIsTabs = props.linkFormat === _Pivot_types__WEBPACK_IMPORTED_MODULE_6__["PivotLinkFormat"].tabs;
        return getClassNames(props.styles, {
            theme: theme,
            rootIsLarge: rootIsLarge,
            rootIsTabs: rootIsTabs
        });
    };
    return PivotBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

function _isPivotItem(item) {
    // In theory, we should be able to just check item.type === PivotItem.
    // However, under certain unclear circumstances (see https://github.com/OfficeDev/office-ui-fabric-react/issues/10785),
    // the object identity is different despite the function implementation being the same.
    return (!!item &&
        typeof item === 'object' &&
        !!item.type &&
        item.type.name === _PivotItem__WEBPACK_IMPORTED_MODULE_5__["PivotItem"].name);
}


/***/ }),

/***/ "./lib/components/Pivot/Pivot.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Pivot", function() { return Pivot; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Pivot_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Pivot/Pivot.base.js");
/* harmony import */ var _Pivot_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Pivot/Pivot.styles.js");



/**
 * The Pivot control and related tabs pattern are used for navigating frequently accessed,
 * distinct content categories. Pivots allow for navigation between two or more content
 * views and relies on text headers to articulate the different sections of content.
 */
var Pivot = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Pivot_base__WEBPACK_IMPORTED_MODULE_1__["PivotBase"], _Pivot_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Pivot'
});


/***/ }),

/***/ "./lib/components/Pivot/Pivot.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var globalClassNames = {
    count: 'ms-Pivot-count',
    icon: 'ms-Pivot-icon',
    linkIsSelected: 'is-selected',
    link: 'ms-Pivot-link',
    linkContent: 'ms-Pivot-linkContent',
    root: 'ms-Pivot',
    rootIsLarge: 'ms-Pivot--large',
    rootIsTabs: 'ms-Pivot--tabs',
    text: 'ms-Pivot-text'
};
var linkStyles = function (props) {
    var _a, _b;
    var rootIsLarge = props.rootIsLarge, rootIsTabs = props.rootIsTabs;
    var _c = props.theme, semanticColors = _c.semanticColors, fonts = _c.fonts;
    return [
        fonts.medium,
        {
            color: semanticColors.actionLink,
            display: 'inline-block',
            lineHeight: 44,
            height: 44,
            marginRight: 8,
            padding: '0 8px',
            textAlign: 'center',
            position: 'relative',
            backgroundColor: 'transparent',
            border: 0,
            borderRadius: 0,
            selectors: (_a = {
                    ':before': {
                        backgroundColor: 'transparent',
                        bottom: 0,
                        content: '""',
                        height: 2,
                        left: 8,
                        position: 'absolute',
                        right: 8,
                        transition: "left " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction2 + ",\n                      right " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue2 + " " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction2
                    },
                    ':after': {
                        color: 'transparent',
                        content: 'attr(data-content)',
                        display: 'block',
                        fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].bold,
                        height: 1,
                        overflow: 'hidden',
                        visibility: 'hidden'
                    },
                    ':hover': {
                        backgroundColor: semanticColors.buttonBackgroundHovered,
                        color: semanticColors.buttonTextHovered,
                        cursor: 'pointer'
                    },
                    ':active': {
                        backgroundColor: semanticColors.buttonBackgroundPressed,
                        color: semanticColors.buttonTextHovered
                    },
                    ':focus': {
                        outline: 'none'
                    }
                },
                _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus"] = {
                    outline: "1px solid " + semanticColors.focusBorder
                },
                _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus:after"] = {
                    content: 'attr(data-content)',
                    position: 'relative',
                    border: 0
                },
                _a)
        },
        rootIsLarge && {
            fontSize: fonts.large.fontSize
        },
        rootIsTabs && [
            {
                marginRight: 0,
                height: 44,
                lineHeight: 44,
                backgroundColor: semanticColors.buttonBackground,
                padding: '0 10px',
                verticalAlign: 'top',
                selectors: (_b = {
                        ':focus': {
                            outlineOffset: '-1px'
                        }
                    },
                    _b["." + _Utilities__WEBPACK_IMPORTED_MODULE_1__["IsFocusVisibleClassName"] + " &:focus::before"] = {
                        height: 'auto',
                        background: 'transparent',
                        transition: 'none'
                    },
                    _b)
            }
        ]
    ];
};
var getStyles = function (props) {
    var _a, _b, _c;
    var className = props.className, rootIsLarge = props.rootIsLarge, rootIsTabs = props.rootIsTabs, theme = props.theme;
    var semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(globalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.medium,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                position: 'relative',
                color: semanticColors.link,
                whiteSpace: 'nowrap'
            },
            rootIsLarge && classNames.rootIsLarge,
            rootIsTabs && classNames.rootIsTabs,
            className
        ],
        link: [
            classNames.link
        ].concat(linkStyles(props), [
            rootIsTabs && {
                selectors: {
                    '&:hover, &:focus': {
                        color: semanticColors.buttonTextCheckedHovered
                    },
                    '&:active, &:hover': {
                        color: semanticColors.primaryButtonText,
                        backgroundColor: semanticColors.primaryButtonBackground
                    }
                }
            }
        ]),
        linkIsSelected: [
            classNames.link,
            classNames.linkIsSelected
        ].concat(linkStyles(props), [
            {
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                selectors: (_a = {
                        ':before': {
                            backgroundColor: semanticColors.inputBackgroundChecked,
                            selectors: (_b = {},
                                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                    backgroundColor: 'Highlight'
                                },
                                _b)
                        },
                        ':hover::before': {
                            left: 0,
                            right: 0
                        }
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'Highlight'
                    },
                    _a)
            },
            rootIsTabs && {
                backgroundColor: semanticColors.primaryButtonBackground,
                color: semanticColors.primaryButtonText,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular,
                selectors: (_c = {
                        ':before': {
                            backgroundColor: 'transparent',
                            transition: 'none',
                            position: 'absolute',
                            top: 0,
                            left: 0,
                            right: 0,
                            bottom: 0,
                            content: '""',
                            height: 'auto'
                        },
                        ':hover': {
                            backgroundColor: semanticColors.primaryButtonBackgroundHovered,
                            color: semanticColors.primaryButtonText
                        },
                        '&:active': {
                            backgroundColor: semanticColors.primaryButtonBackgroundPressed,
                            color: semanticColors.primaryButtonText
                        }
                    },
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold,
                        color: 'HighlightText',
                        background: 'Highlight',
                        MsHighContrastAdjust: 'none'
                    },
                    _c)
            }
        ]),
        linkContent: [
            classNames.linkContent,
            {
                flex: '0 1 100%',
                selectors: {
                    '& > * ': {
                        marginLeft: 4
                    },
                    '& > *:first-child': {
                        marginLeft: 0
                    }
                }
            }
        ],
        text: [
            classNames.text,
            {
                display: 'inline-block',
                verticalAlign: 'top'
            }
        ],
        count: [
            classNames.count,
            {
                display: 'inline-block',
                verticalAlign: 'top'
            }
        ],
        icon: classNames.icon
    };
};


/***/ }),

/***/ "./lib/components/Pivot/Pivot.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PivotLinkFormat", function() { return PivotLinkFormat; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PivotLinkSize", function() { return PivotLinkSize; });
/**
 * {@docCategory Pivot}
 */
var PivotLinkFormat;
(function (PivotLinkFormat) {
    /**
     * Display Pivot Links as links
     */
    PivotLinkFormat[PivotLinkFormat["links"] = 0] = "links";
    /**
     * Display Pivot Links as Tabs
     */
    PivotLinkFormat[PivotLinkFormat["tabs"] = 1] = "tabs";
})(PivotLinkFormat || (PivotLinkFormat = {}));
/**
 * {@docCategory Pivot}
 */
var PivotLinkSize;
(function (PivotLinkSize) {
    /**
     * Display Link using normal font size
     */
    PivotLinkSize[PivotLinkSize["normal"] = 0] = "normal";
    /**
     * Display links using large font size
     */
    PivotLinkSize[PivotLinkSize["large"] = 1] = "large";
})(PivotLinkSize || (PivotLinkSize = {}));


/***/ }),

/***/ "./lib/components/Pivot/PivotItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PivotItem", function() { return PivotItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var PivotItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PivotItem, _super);
    function PivotItem(props) {
        var _this = _super.call(this, props) || this;
        _this._warnDeprecations({
            linkText: 'headerText'
        });
        return _this;
    }
    PivotItem.prototype.render = function () {
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"])), this.props.children);
    };
    return PivotItem;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Pivot/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Pivot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Pivot/Pivot.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Pivot", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_0__["Pivot"]; });

/* harmony import */ var _Pivot_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Pivot/Pivot.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotBase", function() { return _Pivot_base__WEBPACK_IMPORTED_MODULE_1__["PivotBase"]; });

/* harmony import */ var _PivotItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Pivot/PivotItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotItem", function() { return _PivotItem__WEBPACK_IMPORTED_MODULE_2__["PivotItem"]; });

/* harmony import */ var _Pivot_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Pivot/Pivot.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkFormat", function() { return _Pivot_types__WEBPACK_IMPORTED_MODULE_3__["PivotLinkFormat"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkSize", function() { return _Pivot_types__WEBPACK_IMPORTED_MODULE_3__["PivotLinkSize"]; });







/***/ }),

/***/ "./lib/components/Popup/Popup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return Popup; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



/**
 * This adds accessibility to Dialog and Panel controls
 */
var Popup = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Popup, _super);
    function Popup(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._disposables = [];
        _this._onKeyDown = function (ev) {
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    if (_this.props.onDismiss) {
                        _this.props.onDismiss(ev);
                        ev.preventDefault();
                        ev.stopPropagation();
                    }
                    break;
            }
        };
        _this._onFocus = function () {
            _this._containsFocus = true;
        };
        _this._onBlur = function (ev) {
            if (_this._root.current && _this._root.current.contains(ev.relatedTarget)) {
                _this._containsFocus = false;
            }
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["Async"](_this);
        _this.state = { needsVerticalScrollBar: false };
        return _this;
    }
    // tslint:disable-next-line function-name
    Popup.prototype.UNSAFE_componentWillMount = function () {
        this._originalFocusedElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])().activeElement;
    };
    Popup.prototype.componentDidMount = function () {
        if (this._root.current) {
            this._disposables.push(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(this._root.current, 'focus', this._onFocus, true), Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(this._root.current, 'blur', this._onBlur, true));
            var currentWindow = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(this._root.current);
            if (currentWindow) {
                this._disposables.push(Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["on"])(currentWindow, 'keydown', this._onKeyDown));
            }
            if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["doesElementContainFocus"])(this._root.current)) {
                this._containsFocus = true;
            }
        }
        this._updateScrollBarAsync();
    };
    Popup.prototype.componentDidUpdate = function () {
        this._updateScrollBarAsync();
        this._async.dispose();
    };
    Popup.prototype.componentWillUnmount = function () {
        this._disposables.forEach(function (dispose) { return dispose(); });
        if (this.props.shouldRestoreFocus &&
            this._originalFocusedElement &&
            this._containsFocus &&
            this._originalFocusedElement !== window) {
            // This slight delay is required so that we can unwind the stack, let react try to mess with focus, and then
            // apply the correct focus. Without the setTimeout, we end up focusing the correct thing, and then React wants
            // to reset the focus back to the thing it thinks should have been focused.
            if (this._originalFocusedElement) {
                this._originalFocusedElement.focus();
            }
        }
    };
    Popup.prototype.render = function () {
        var _a = this.props, role = _a.role, className = _a.className, ariaLabel = _a.ariaLabel, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, style = _a.style;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._root }, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]), { className: className, role: role, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, onKeyDown: this._onKeyDown, style: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ overflowY: this.state.needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), this.props.children));
    };
    Popup.prototype._updateScrollBarAsync = function () {
        var _this = this;
        this._async.requestAnimationFrame(function () {
            _this._getScrollBar();
        });
    };
    Popup.prototype._getScrollBar = function () {
        // If overflowY is overriden, don't waste time calculating whether the scrollbar is necessary.
        if (this.props.style && this.props.style.overflowY) {
            return;
        }
        var needsVerticalScrollBar = false;
        if (this._root && this._root.current && this._root.current.firstElementChild) {
            // ClientHeight returns the client height of an element rounded to an
            // integer. On some browsers at different zoom levels this rounding
            // can generate different results for the root container and child even
            // though they are the same height. This causes us to show a scroll bar
            // when not needed. Ideally we would use BoundingClientRect().height
            // instead however seems that the API is 90% slower than using ClientHeight.
            // Therefore instead we will calculate the difference between heights and
            // allow for a 1px difference to still be considered ok and not show the
            // scroll bar.
            var rootHeight = this._root.current.clientHeight;
            var firstChildHeight = this._root.current.firstElementChild.clientHeight;
            if (rootHeight > 0 && firstChildHeight > rootHeight) {
                needsVerticalScrollBar = firstChildHeight - rootHeight > 1;
            }
        }
        if (this.state.needsVerticalScrollBar !== needsVerticalScrollBar) {
            this.setState({
                needsVerticalScrollBar: needsVerticalScrollBar
            });
        }
    };
    Popup.defaultProps = {
        shouldRestoreFocus: true
    };
    return Popup;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Popup/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Popup/Popup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _Popup__WEBPACK_IMPORTED_MODULE_0__["Popup"]; });




/***/ }),

/***/ "./lib/components/ProgressIndicator/ProgressIndicator.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicatorBase", function() { return ProgressIndicatorBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
// if the percentComplete is near 0, don't animate it.
// This prevents animations on reset to 0 scenarios
var ZERO_THRESHOLD = 0.01;
/**
 * ProgressIndicator with no default styles.
 * [Use the `styles` API to add your own styles.](https://github.com/OfficeDev/office-ui-fabric-react/wiki/Styling)
 */
var ProgressIndicatorBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ProgressIndicatorBase, _super);
    function ProgressIndicatorBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onRenderProgress = function (props) {
            var _a = _this.props, ariaValueText = _a.ariaValueText, barHeight = _a.barHeight, className = _a.className, styles = _a.styles, theme = _a.theme;
            var percentComplete = typeof _this.props.percentComplete === 'number' ? Math.min(100, Math.max(0, _this.props.percentComplete * 100)) : undefined;
            var classNames = getClassNames(styles, {
                theme: theme,
                className: className,
                barHeight: barHeight,
                indeterminate: percentComplete === undefined ? true : false
            });
            var progressBarStyles = {
                width: percentComplete !== undefined ? percentComplete + '%' : undefined,
                transition: percentComplete !== undefined && percentComplete < ZERO_THRESHOLD ? 'none' : undefined
            };
            var ariaValueMin = percentComplete !== undefined ? 0 : undefined;
            var ariaValueMax = percentComplete !== undefined ? 100 : undefined;
            var ariaValueNow = percentComplete !== undefined ? Math.floor(percentComplete) : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.itemProgress },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.progressTrack }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.progressBar, style: progressBarStyles, role: "progressbar", "aria-valuemin": ariaValueMin, "aria-valuemax": ariaValueMax, "aria-valuenow": ariaValueNow, "aria-valuetext": ariaValueText })));
        };
        return _this;
    }
    ProgressIndicatorBase.prototype.render = function () {
        var _a = this.props, barHeight = _a.barHeight, className = _a.className, _b = _a.label, label = _b === void 0 ? this.props.title : _b, // Fall back to deprecated value.
        description = _a.description, styles = _a.styles, theme = _a.theme, progressHidden = _a.progressHidden, _c = _a.onRenderProgress, onRenderProgress = _c === void 0 ? this._onRenderProgress : _c;
        var percentComplete = typeof this.props.percentComplete === 'number' ? Math.min(100, Math.max(0, this.props.percentComplete * 100)) : undefined;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            barHeight: barHeight,
            indeterminate: percentComplete === undefined ? true : false
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
            label ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.itemName }, label) : null,
            !progressHidden
                ? onRenderProgress(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { percentComplete: percentComplete }), this._onRenderProgress)
                : null,
            description ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.itemDescription }, description) : null));
    };
    ProgressIndicatorBase.defaultProps = {
        label: '',
        description: '',
        width: 180
    };
    return ProgressIndicatorBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/ProgressIndicator/ProgressIndicator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicator", function() { return ProgressIndicator; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ProgressIndicator_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ProgressIndicator/ProgressIndicator.base.js");
/* harmony import */ var _ProgressIndicator_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ProgressIndicator/ProgressIndicator.styles.js");



/**
 * ProgressIndicator description
 */
var ProgressIndicator = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ProgressIndicator_base__WEBPACK_IMPORTED_MODULE_1__["ProgressIndicatorBase"], _ProgressIndicator_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ProgressIndicator' });


/***/ }),

/***/ "./lib/components/ProgressIndicator/ProgressIndicator.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-ProgressIndicator',
    itemName: 'ms-ProgressIndicator-itemName',
    itemDescription: 'ms-ProgressIndicator-itemDescription',
    itemProgress: 'ms-ProgressIndicator-itemProgress',
    progressTrack: 'ms-ProgressIndicator-progressTrack',
    progressBar: 'ms-ProgressIndicator-progressBar'
};
var IndeterminateProgress = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        left: '-30%'
    },
    '100%': {
        left: '100%'
    }
});
var IndeterminateProgressRTL = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '100%': {
        right: '-30%'
    },
    '0%': {
        right: '100%'
    }
});
var getStyles = function (props) {
    var _a, _b;
    var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])();
    var className = props.className, indeterminate = props.indeterminate, theme = props.theme, _c = props.barHeight, barHeight = _c === void 0 ? 2 : _c;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var marginBetweenText = 8;
    var textHeight = 18;
    var progressTrackColor = palette.neutralLight;
    return {
        root: [classNames.root, fonts.medium, className],
        itemName: [
            classNames.itemName,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["noWrap"],
            {
                color: semanticColors.bodyText,
                paddingTop: marginBetweenText / 2,
                lineHeight: textHeight + 2
            }
        ],
        itemDescription: [
            classNames.itemDescription,
            {
                color: semanticColors.bodySubtext,
                fontSize: fonts.small.fontSize,
                lineHeight: textHeight
            }
        ],
        itemProgress: [
            classNames.itemProgress,
            {
                position: 'relative',
                overflow: 'hidden',
                height: barHeight,
                padding: marginBetweenText + "px 0"
            }
        ],
        progressTrack: [
            classNames.progressTrack,
            {
                position: 'absolute',
                width: '100%',
                height: barHeight,
                backgroundColor: progressTrackColor,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderBottom: '1px solid WindowText'
                    },
                    _a)
            }
        ],
        progressBar: [
            {
                backgroundColor: palette.themePrimary,
                height: barHeight,
                position: 'absolute',
                transition: 'width .3s ease',
                width: 0,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'WindowText'
                    },
                    _b)
            },
            indeterminate
                ? {
                    position: 'absolute',
                    minWidth: '33%',
                    background: "linear-gradient(to right, " + progressTrackColor + " 0%, " + palette.themePrimary + " 50%, " + progressTrackColor + " 100%)",
                    animation: (isRTL ? IndeterminateProgressRTL : IndeterminateProgress) + " 3s infinite"
                }
                : {
                    transition: 'width .15s linear'
                },
            classNames.progressBar
        ]
    };
};


/***/ }),

/***/ "./lib/components/ProgressIndicator/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ProgressIndicator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ProgressIndicator/ProgressIndicator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicator", function() { return _ProgressIndicator__WEBPACK_IMPORTED_MODULE_0__["ProgressIndicator"]; });

/* harmony import */ var _ProgressIndicator_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ProgressIndicator/ProgressIndicator.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicatorBase", function() { return _ProgressIndicator_base__WEBPACK_IMPORTED_MODULE_1__["ProgressIndicatorBase"]; });





/***/ }),

/***/ "./lib/components/Rating/Rating.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RatingBase", function() { return RatingBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Rating_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Rating/Rating.types.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var RatingStar = function (props) {
    var icon = props.icon || 'FavoriteStarFill';
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: props.classNames.ratingStar, key: props.id },
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], { className: props.classNames.ratingStarBack, iconName: icon }),
        !props.disabled && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], { className: props.classNames.ratingStarFront, iconName: icon, style: { width: props.fillPercentage + '%' } }))));
};
var RatingBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RatingBase, _super);
    function RatingBase(props) {
        var _this = _super.call(this, props) || this;
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnDeprecations"])('Rating', props, { onChanged: 'onChange' });
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Rating');
        _this._min = _this.props.allowZeroStars ? 0 : 1;
        if (_this.props.min !== undefined && _this.props.min !== 1) {
            _this._min = _this.props.min;
        }
        _this._labelId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('RatingLabel');
        _this.state = {
            rating: _this._getInitialValue(props)
        };
        return _this;
    }
    RatingBase.prototype.render = function () {
        var _a, _b, _c;
        var _d = this.props, disabled = _d.disabled, getAriaLabel = _d.getAriaLabel, styles = _d.styles, max = _d.max, readOnly = _d.readOnly, size = _d.size, theme = _d.theme, _e = _d.icon, icon = _e === void 0 ? 'FavoriteStarFill' : _e, _f = _d.unselectedIcon, unselectedIcon = _f === void 0 ? 'FavoriteStar' : _f;
        var id = this._id;
        var stars = [];
        var starIds = [];
        var rating = this._getRating();
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        this._classNames = getClassNames(styles, {
            disabled: disabled,
            readOnly: readOnly,
            theme: theme
        });
        for (var i = this._min; i <= max; i++) {
            if (i !== 0) {
                var fillPercentage = this._getFillingPercentage(i);
                var ratingStarProps = {
                    fillPercentage: fillPercentage,
                    disabled: disabled,
                    classNames: this._classNames,
                    icon: fillPercentage > 0 ? icon : unselectedIcon
                };
                starIds.push(this._getStarId(i - 1));
                stars.push(react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(this._classNames.ratingButton, (_a = {},
                        _a[this._classNames.ratingStarIsLarge] = size === _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                        _a[this._classNames.ratingStarIsSmall] = size !== _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                        _a)), id: starIds[i - 1], key: i }, (i === Math.ceil(rating) ? { 'data-is-current': true } : {}), { onFocus: this._onFocus.bind(this, i), onClick: this._onFocus.bind(this, i), disabled: disabled || readOnly ? true : false, role: "presentation", type: "button" }),
                    this._getLabel(i),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RatingStar, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: i + 'rating' }, ratingStarProps))));
            }
        }
        var ariaLabel = getAriaLabel ? getAriaLabel(rating ? rating : 0, max) : undefined;
        // When in read-only mode, we allow focus (per ARIA standards) and set up ARIA attributes to indicate element is read-only.
        // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly
        var readOnlyProps = readOnly
            ? {
                allowFocusRoot: true,
                disabled: true,
                'aria-label': ariaLabel,
                'aria-readonly': true,
                'data-is-focusable': true,
                tabIndex: 0
            }
            : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Rating-star', this._classNames.root, (_b = {},
                _b[this._classNames.rootIsLarge] = size === _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                _b[this._classNames.rootIsSmall] = size !== _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                _b)), "aria-label": !readOnly ? ariaLabel : '', id: id }, divProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZone"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ direction: _FocusZone__WEBPACK_IMPORTED_MODULE_4__["FocusZoneDirection"].horizontal, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(this._classNames.ratingFocusZone, (_c = {},
                    _c[this._classNames.rootIsLarge] = size === _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                    _c[this._classNames.rootIsSmall] = size !== _Rating_types__WEBPACK_IMPORTED_MODULE_5__["RatingSize"].Large,
                    _c)), defaultActiveElement: rating ? starIds[Math.ceil(rating) - 1] && '#' + starIds[Math.ceil(rating) - 1] : undefined }, readOnlyProps), stars)));
    };
    RatingBase.prototype._getStarId = function (index) {
        return this._id + '-star-' + index;
    };
    RatingBase.prototype._onFocus = function (value, ev) {
        if (Math.ceil(this.state.rating) !== value) {
            this.setState({
                rating: value
            });
            var _a = this.props, onChange = _a.onChange, onChanged = _a.onChanged;
            if (onChange) {
                onChange(ev, value);
            }
            if (onChanged) {
                onChanged(value);
            }
        }
    };
    RatingBase.prototype._getLabel = function (rating) {
        var text = this.props.ariaLabelFormat || '';
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: this._labelId + "-" + rating, className: this._classNames.labelText }, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(text, rating, this.props.max)));
    };
    RatingBase.prototype._getInitialValue = function (props) {
        if (typeof props.rating === 'undefined') {
            return this._min;
        }
        if (props.rating === null) {
            return undefined;
        }
        return this._getClampedRating(props.rating);
    };
    RatingBase.prototype._getClampedRating = function (rating) {
        return Math.min(Math.max(rating, this._min), this.props.max);
    };
    RatingBase.prototype._getRating = function () {
        if (this.props.rating !== undefined) {
            return this._getClampedRating(this.props.rating);
        }
        if (this.state.rating !== undefined && this.state.rating !== null) {
            return this._getClampedRating(this.state.rating);
        }
        return 0;
    };
    RatingBase.prototype._getFillingPercentage = function (starPosition) {
        var rating = this._getRating();
        var ceilValue = Math.ceil(rating);
        var fillPercentage = 100;
        if (starPosition === rating) {
            fillPercentage = 100;
        }
        else if (starPosition === ceilValue) {
            fillPercentage = 100 * (rating % 1);
        }
        else if (starPosition > ceilValue) {
            fillPercentage = 0;
        }
        return fillPercentage;
    };
    RatingBase.defaultProps = {
        min: 1,
        max: 5
    };
    return RatingBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Rating/Rating.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return Rating; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Rating_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Rating/Rating.styles.js");
/* harmony import */ var _Rating_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Rating/Rating.base.js");



var Rating = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Rating_base__WEBPACK_IMPORTED_MODULE_2__["RatingBase"], _Rating_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, { scope: 'Rating' });


/***/ }),

/***/ "./lib/components/Rating/Rating.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-RatingStar-root',
    rootIsSmall: 'ms-RatingStar-root--small',
    rootIsLarge: 'ms-RatingStar-root--large',
    ratingStar: 'ms-RatingStar-container',
    ratingStarBack: 'ms-RatingStar-back',
    ratingStarFront: 'ms-RatingStar-front',
    ratingButton: 'ms-Rating-button',
    ratingStarIsSmall: 'ms-Rating--small',
    ratingStartIsLarge: 'ms-Rating--large',
    labelText: 'ms-Rating-labelText',
    ratingFocusZone: 'ms-Rating-focuszone'
};
function _getColorWithHighContrast(color, highContrastColor) {
    var _a;
    return {
        color: color,
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                color: highContrastColor
            },
            _a)
    };
}
function getStyles(props) {
    var disabled = props.disabled, readOnly = props.readOnly, theme = props.theme;
    var semanticColors = theme.semanticColors, palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var ratingSmallIconSize = 16;
    var ratingLargeIconSize = 20;
    var ratingVerticalPadding = 8;
    var ratingHorizontalPadding = 2;
    var ratingStarUncheckedColor = palette.neutralSecondary;
    var ratingStarUncheckedHoverColor = palette.themePrimary;
    var ratingStarUncheckedHoverSelectedColor = palette.themeDark;
    var ratingStarCheckedColor = palette.neutralPrimary;
    var ratingStarDisabledColor = semanticColors.disabledBodySubtext;
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            !disabled &&
                !readOnly && {
                selectors: {
                    // This is part 1 of highlighting all stars up to the one the user is hovering over
                    '&:hover': {
                        selectors: {
                            '.ms-RatingStar-back': _getColorWithHighContrast(ratingStarCheckedColor, 'Highlight')
                        }
                    }
                }
            }
        ],
        rootIsSmall: [
            classNames.rootIsSmall,
            {
                height: ratingSmallIconSize + ratingVerticalPadding * 2 + 'px'
            }
        ],
        rootIsLarge: [
            classNames.rootIsLarge,
            {
                height: ratingLargeIconSize + ratingVerticalPadding * 2 + 'px'
            }
        ],
        ratingStar: [
            classNames.ratingStar,
            {
                display: 'inline-block',
                position: 'relative',
                height: 'inherit'
            }
        ],
        ratingStarBack: [
            classNames.ratingStarBack,
            {
                // TODO: Use a proper semantic color for this
                color: ratingStarUncheckedColor,
                width: '100%'
            },
            disabled && _getColorWithHighContrast(ratingStarDisabledColor, 'GrayText')
        ],
        ratingStarFront: [
            classNames.ratingStarFront,
            {
                position: 'absolute',
                height: '100 %',
                left: '0',
                top: '0',
                textAlign: 'center',
                verticalAlign: 'middle',
                overflow: 'hidden'
            },
            _getColorWithHighContrast(ratingStarCheckedColor, 'Highlight')
        ],
        ratingButton: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            classNames.ratingButton,
            {
                backgroundColor: 'transparent',
                padding: ratingVerticalPadding + "px " + ratingHorizontalPadding + "px",
                boxSizing: 'content-box',
                margin: '0px',
                border: 'none',
                cursor: 'pointer',
                selectors: {
                    '&:disabled': {
                        cursor: 'default'
                    },
                    '&[disabled]': {
                        cursor: 'default'
                    }
                }
            },
            !disabled &&
                !readOnly && {
                selectors: {
                    // This is part 2 of highlighting all stars up to the one the user is hovering over
                    '&:hover ~ .ms-Rating-button': {
                        selectors: {
                            '.ms-RatingStar-back': _getColorWithHighContrast(ratingStarUncheckedColor, 'WindowText'),
                            '.ms-RatingStar-front': _getColorWithHighContrast(ratingStarUncheckedColor, 'WindowText')
                        }
                    },
                    '&:hover': {
                        selectors: {
                            '.ms-RatingStar-back': {
                                color: ratingStarUncheckedHoverColor
                            },
                            '.ms-RatingStar-front': {
                                color: ratingStarUncheckedHoverSelectedColor
                            }
                        }
                    }
                }
            },
            disabled && {
                cursor: 'default'
            }
        ],
        ratingStarIsSmall: [
            classNames.ratingStarIsSmall,
            {
                fontSize: ratingSmallIconSize + 'px',
                lineHeight: ratingSmallIconSize + 'px',
                height: ratingSmallIconSize + 'px'
            }
        ],
        ratingStarIsLarge: [
            classNames.ratingStartIsLarge,
            {
                fontSize: ratingLargeIconSize + 'px',
                lineHeight: ratingLargeIconSize + 'px',
                height: ratingLargeIconSize + 'px'
            }
        ],
        labelText: [classNames.labelText, _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]],
        ratingFocusZone: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            classNames.ratingFocusZone,
            {
                display: 'inline-block'
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/Rating/Rating.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RatingSize", function() { return RatingSize; });
/**
 * {@docCategory Rating}
 */
var RatingSize;
(function (RatingSize) {
    RatingSize[RatingSize["Small"] = 0] = "Small";
    RatingSize[RatingSize["Large"] = 1] = "Large";
})(RatingSize || (RatingSize = {}));


/***/ }),

/***/ "./lib/components/Rating/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Rating__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Rating/Rating.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _Rating__WEBPACK_IMPORTED_MODULE_0__["Rating"]; });

/* harmony import */ var _Rating_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Rating/Rating.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingBase", function() { return _Rating_base__WEBPACK_IMPORTED_MODULE_1__["RatingBase"]; });

/* harmony import */ var _Rating_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Rating/Rating.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingSize", function() { return _Rating_types__WEBPACK_IMPORTED_MODULE_2__["RatingSize"]; });






/***/ }),

/***/ "./lib/components/ResizeGroup/ResizeGroup.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMeasurementCache", function() { return getMeasurementCache; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNextResizeGroupStateProvider", function() { return getNextResizeGroupStateProvider; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MeasuredContext", function() { return MeasuredContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupBase", function() { return ResizeGroupBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ResizeGroup_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ResizeGroup/ResizeGroup.types.js");




var RESIZE_DELAY = 16;
/**
 * Returns a simple object is able to store measurements with a given key.
 */
var getMeasurementCache = function () {
    var measurementsCache = {};
    return {
        /**
         * Checks if the provided data has a cacheKey. If it has a cacheKey and there is a
         * corresponding entry in the measurementsCache, then it will return that value.
         * Returns undefined otherwise.
         */
        getCachedMeasurement: function (data) {
            if (data && data.cacheKey && measurementsCache.hasOwnProperty(data.cacheKey)) {
                return measurementsCache[data.cacheKey];
            }
            return undefined;
        },
        /**
         * Should be called whenever there is a new measurement associated with a given data object.
         * If the data has a cacheKey, store that measurement in the measurementsCache.
         */
        addMeasurementToCache: function (data, measurement) {
            if (data.cacheKey) {
                measurementsCache[data.cacheKey] = measurement;
            }
        }
    };
};
/**
 * Returns a function that is able to compute the next state for the ResizeGroup given the current
 * state and any measurement updates.
 */
var getNextResizeGroupStateProvider = function (measurementCache) {
    if (measurementCache === void 0) { measurementCache = getMeasurementCache(); }
    var _measurementCache = measurementCache;
    var _containerDimension;
    /**
     * Gets the width/height of the data rendered in a hidden div.
     * @param measuredData - The data corresponding to the measurement we wish to take.
     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data. Only called when the measurement
     * is not in the cache.
     */
    function _getMeasuredDimension(measuredData, getElementToMeasureDimension) {
        var cachedDimension = _measurementCache.getCachedMeasurement(measuredData);
        if (cachedDimension !== undefined) {
            return cachedDimension;
        }
        var measuredDimension = getElementToMeasureDimension();
        _measurementCache.addMeasurementToCache(measuredData, measuredDimension);
        return measuredDimension;
    }
    /**
     * Will get the next IResizeGroupState based on the current data while trying to shrink contents
     * to fit in the container.
     * @param data - The initial data point to start measuring.
     * @param onReduceData - Function that transforms the data into something that should render with less width/height.
     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data. Only called when the measurement
     * is not in the cache.
     */
    function _shrinkContentsUntilTheyFit(data, onReduceData, getElementToMeasureDimension) {
        var dataToMeasure = data;
        var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);
        while (measuredDimension > _containerDimension) {
            var nextMeasuredData = onReduceData(dataToMeasure);
            // We don't want to get stuck in an infinite render loop when there are no more
            // scaling steps, so implementations of onReduceData should return undefined when
            // there are no more scaling states to apply.
            if (nextMeasuredData === undefined) {
                return {
                    renderedData: dataToMeasure,
                    resizeDirection: undefined,
                    dataToMeasure: undefined
                };
            }
            measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);
            // If the measurement isn't in the cache, we need to rerender with some data in a hidden div
            if (measuredDimension === undefined) {
                return {
                    dataToMeasure: nextMeasuredData,
                    resizeDirection: 'shrink'
                };
            }
            dataToMeasure = nextMeasuredData;
        }
        return {
            renderedData: dataToMeasure,
            resizeDirection: undefined,
            dataToMeasure: undefined
        };
    }
    /**
     * This function should be called when the state changes in a manner that might allow for more content to fit
     * on the screen, such as the window width/height growing.
     * @param data - The initial data point to start measuring.
     * @param onGrowData - Function that transforms the data into something that may take up more space when rendering.
     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data. Only called when the measurement
     * is not in the cache.
     */
    function _growDataUntilItDoesNotFit(data, onGrowData, getElementToMeasureDimension, onReduceData) {
        var dataToMeasure = data;
        var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);
        while (measuredDimension < _containerDimension) {
            var nextMeasuredData = onGrowData(dataToMeasure);
            // We don't want to get stuck in an infinite render loop when there are no more
            // scaling steps, so implementations of onGrowData should return undefined when
            // there are no more scaling states to apply.
            if (nextMeasuredData === undefined) {
                return {
                    renderedData: dataToMeasure,
                    resizeDirection: undefined,
                    dataToMeasure: undefined
                };
            }
            measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);
            // If the measurement isn't in the cache, we need to rerender with some data in a hidden div
            if (measuredDimension === undefined) {
                return {
                    dataToMeasure: nextMeasuredData
                };
            }
            dataToMeasure = nextMeasuredData;
        }
        // Once the loop is done, we should now shrink until the contents fit.
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ resizeDirection: 'shrink' }, _shrinkContentsUntilTheyFit(dataToMeasure, onReduceData, getElementToMeasureDimension));
    }
    /**
     * Handles an update to the container width/eheight. Should only be called when we knew the previous container width/height.
     * @param newDimension - The new width/height of the container.
     * @param fullDimensionData - The initial data passed in as a prop to resizeGroup.
     * @param renderedData - The data that was rendered prior to the container size changing.
     * @param onGrowData - Set to true if the Resize group has an onGrowData function.
     */
    function _updateContainerDimension(newDimension, fullDimensionData, renderedData, onGrowData) {
        var nextState;
        if (newDimension > _containerDimension) {
            if (onGrowData) {
                nextState = {
                    resizeDirection: 'grow',
                    dataToMeasure: onGrowData(renderedData)
                };
            }
            else {
                nextState = {
                    resizeDirection: 'shrink',
                    dataToMeasure: fullDimensionData
                };
            }
        }
        else {
            nextState = {
                resizeDirection: 'shrink',
                dataToMeasure: renderedData
            };
        }
        _containerDimension = newDimension;
        return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nextState, { measureContainer: false });
    }
    function getNextState(props, currentState, getElementToMeasureDimension, newContainerDimension) {
        // If there is no new container width/height or data to measure, there is no need for a new state update
        if (newContainerDimension === undefined && currentState.dataToMeasure === undefined) {
            return undefined;
        }
        if (newContainerDimension) {
            // If we know what the last container size was and we rendered data at that width/height, we can do an optimized render
            if (_containerDimension && currentState.renderedData && !currentState.dataToMeasure) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, currentState, _updateContainerDimension(newContainerDimension, props.data, currentState.renderedData, props.onGrowData));
            }
            // If we are just setting the container width/height for the first time, we can't do any optimizations
            _containerDimension = newContainerDimension;
        }
        var nextState = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, currentState, { measureContainer: false });
        if (currentState.dataToMeasure) {
            if (currentState.resizeDirection === 'grow' && props.onGrowData) {
                nextState = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nextState, _growDataUntilItDoesNotFit(currentState.dataToMeasure, props.onGrowData, getElementToMeasureDimension, props.onReduceData));
            }
            else {
                nextState = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nextState, _shrinkContentsUntilTheyFit(currentState.dataToMeasure, props.onReduceData, getElementToMeasureDimension));
            }
        }
        return nextState;
    }
    /** Function that determines if we need to render content for measurement based on the measurement cache contents. */
    function shouldRenderDataForMeasurement(dataToMeasure) {
        if (!dataToMeasure || _measurementCache.getCachedMeasurement(dataToMeasure) !== undefined) {
            return false;
        }
        return true;
    }
    function getInitialResizeGroupState(data) {
        return {
            dataToMeasure: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, data),
            resizeDirection: 'grow',
            measureContainer: true
        };
    }
    return {
        getNextState: getNextState,
        shouldRenderDataForMeasurement: shouldRenderDataForMeasurement,
        getInitialResizeGroupState: getInitialResizeGroupState
    };
};
// Provides a context property that (if true) tells any child components that
// they are only being used for measurement purposes and will not be visible.
var MeasuredContext = react__WEBPACK_IMPORTED_MODULE_1__["createContext"]({ isMeasured: false });
// Styles for the hidden div used for measurement
var hiddenDivStyles = { position: 'fixed', visibility: 'hidden' };
var hiddenParentStyles = { position: 'relative' };
var ResizeGroupBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ResizeGroupBase, _super);
    function ResizeGroupBase(props) {
        var _this = _super.call(this, props) || this;
        _this._nextResizeGroupStateProvider = getNextResizeGroupStateProvider();
        // The root div which is the container inside of which we are trying to fit content.
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // A div that can be used for the initial measurement so that we can avoid mounting a second instance
        // of the component being measured for the initial render.
        _this._initialHiddenDiv = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // A hidden div that is used for mounting a new instance of the component for measurement in a hidden
        // div without unmounting the currently visible content.
        _this._updateHiddenDiv = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        // Tracks if any content has been rendered to the user. This enables us to do some performance optimizations
        // for the initial render.
        _this._hasRenderedContent = false;
        _this.state = _this._nextResizeGroupStateProvider.getInitialResizeGroupState(_this.props.data);
        _this._warnDeprecations({
            styles: 'className'
        });
        return _this;
    }
    ResizeGroupBase.prototype.render = function () {
        var _a = this.props, className = _a.className, onRenderData = _a.onRenderData;
        var _b = this.state, dataToMeasure = _b.dataToMeasure, renderedData = _b.renderedData;
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"], ['data']);
        var dataNeedsMeasuring = this._nextResizeGroupStateProvider.shouldRenderDataForMeasurement(dataToMeasure);
        var isInitialMeasure = !this._hasRenderedContent && dataNeedsMeasuring;
        // We only ever render the final content to the user. All measurements are done in a hidden div.
        // For the initial render, we want this to be as fast as possible, so we need to make sure that we only mount one version of the
        // component for measurement and the final render. For renders that update what is on screen, we want to make sure that
        // there are no jarring effects such as the screen flashing as we apply scaling steps for meassurement. In the update case,
        // we mount a second version of the component just for measurement purposes and leave the rendered content untouched until we know the
        // next state sto show to the user.
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: className, ref: this._root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: hiddenParentStyles },
                dataNeedsMeasuring && !isInitialMeasure && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: hiddenDivStyles, ref: this._updateHiddenDiv },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](MeasuredContext.Provider, { value: { isMeasured: true } }, onRenderData(dataToMeasure)))),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._initialHiddenDiv, style: isInitialMeasure ? hiddenDivStyles : undefined, "data-automation-id": "visibleContent" }, isInitialMeasure ? onRenderData(dataToMeasure) : renderedData && onRenderData(renderedData)))));
    };
    ResizeGroupBase.prototype.componentDidMount = function () {
        this._afterComponentRendered(this.props.direction);
        this._events.on(window, 'resize', this._async.debounce(this._onResize, RESIZE_DELAY, { leading: true }));
    };
    // tslint:disable-next-line function-name
    ResizeGroupBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
        this.setState({
            dataToMeasure: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nextProps.data),
            resizeDirection: 'grow',
            measureContainer: true // Receiving new props means the parent might rerender and the root width/height might change
        });
    };
    ResizeGroupBase.prototype.componentDidUpdate = function (prevProps) {
        if (this.state.renderedData) {
            this._hasRenderedContent = true;
            if (this.props.dataDidRender) {
                this.props.dataDidRender(this.state.renderedData);
            }
        }
        this._afterComponentRendered(this.props.direction);
    };
    ResizeGroupBase.prototype.remeasure = function () {
        if (this._root.current) {
            this.setState({ measureContainer: true });
        }
    };
    ResizeGroupBase.prototype._afterComponentRendered = function (direction) {
        var _this = this;
        this._async.requestAnimationFrame(function () {
            var containerDimension = undefined;
            if (_this.state.measureContainer && _this._root.current) {
                var boundingRect = _this._root.current.getBoundingClientRect();
                containerDimension = direction && direction === _ResizeGroup_types__WEBPACK_IMPORTED_MODULE_3__["ResizeGroupDirection"].vertical ? boundingRect.height : boundingRect.width;
            }
            var nextState = _this._nextResizeGroupStateProvider.getNextState(_this.props, _this.state, function () {
                var refToMeasure = !_this._hasRenderedContent ? _this._initialHiddenDiv : _this._updateHiddenDiv;
                if (!refToMeasure.current) {
                    return 0;
                }
                return direction && direction === _ResizeGroup_types__WEBPACK_IMPORTED_MODULE_3__["ResizeGroupDirection"].vertical
                    ? refToMeasure.current.scrollHeight
                    : refToMeasure.current.scrollWidth;
            }, containerDimension);
            if (nextState) {
                _this.setState(nextState);
            }
        });
    };
    ResizeGroupBase.prototype._onResize = function () {
        if (this._root.current) {
            this.setState({ measureContainer: true });
        }
    };
    return ResizeGroupBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ResizeGroup/ResizeGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeGroup", function() { return ResizeGroup; });
/* harmony import */ var _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ResizeGroup/ResizeGroup.base.js");

var ResizeGroup = _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_0__["ResizeGroupBase"];


/***/ }),

/***/ "./lib/components/ResizeGroup/ResizeGroup.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupDirection", function() { return ResizeGroupDirection; });
/**
 * {@docCategory ResizeGroup}
 */
var ResizeGroupDirection;
(function (ResizeGroupDirection) {
    ResizeGroupDirection[ResizeGroupDirection["horizontal"] = 0] = "horizontal";
    ResizeGroupDirection[ResizeGroupDirection["vertical"] = 1] = "vertical";
})(ResizeGroupDirection || (ResizeGroupDirection = {}));


/***/ }),

/***/ "./lib/components/ResizeGroup/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ResizeGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ResizeGroup/ResizeGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroup", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_0__["ResizeGroup"]; });

/* harmony import */ var _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ResizeGroup/ResizeGroup.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMeasurementCache", function() { return _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_1__["getMeasurementCache"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextResizeGroupStateProvider", function() { return _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_1__["getNextResizeGroupStateProvider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MeasuredContext", function() { return _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_1__["MeasuredContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupBase", function() { return _ResizeGroup_base__WEBPACK_IMPORTED_MODULE_1__["ResizeGroupBase"]; });

/* harmony import */ var _ResizeGroup_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ResizeGroup/ResizeGroup.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupDirection", function() { return _ResizeGroup_types__WEBPACK_IMPORTED_MODULE_2__["ResizeGroupDirection"]; });






/***/ }),

/***/ "./lib/components/ScrollablePane/ScrollablePane.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneBase", function() { return ScrollablePaneBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ScrollablePane_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.types.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ScrollablePaneBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ScrollablePaneBase, _super);
    function ScrollablePaneBase(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._stickyAboveRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._stickyBelowRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._contentContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.subscribe = function (handler) {
            _this._subscribers.add(handler);
        };
        _this.unsubscribe = function (handler) {
            _this._subscribers.delete(handler);
        };
        _this.addSticky = function (sticky) {
            _this._stickies.add(sticky);
            // If ScrollablePane is mounted, then sort sticky in correct place
            if (_this.contentContainer) {
                sticky.setDistanceFromTop(_this.contentContainer);
                _this.sortSticky(sticky);
            }
        };
        _this.removeSticky = function (sticky) {
            _this._stickies.delete(sticky);
            _this._removeStickyFromContainers(sticky);
            _this.notifySubscribers();
        };
        _this.sortSticky = function (sticky, sortAgain) {
            if (_this.stickyAbove && _this.stickyBelow) {
                if (sortAgain) {
                    _this._removeStickyFromContainers(sticky);
                }
                if (sticky.canStickyTop && sticky.stickyContentTop) {
                    _this._addToStickyContainer(sticky, _this.stickyAbove, sticky.stickyContentTop);
                }
                if (sticky.canStickyBottom && sticky.stickyContentBottom) {
                    _this._addToStickyContainer(sticky, _this.stickyBelow, sticky.stickyContentBottom);
                }
            }
        };
        _this.updateStickyRefHeights = function () {
            var stickyItems = _this._stickies;
            var stickyTopHeight = 0;
            var stickyBottomHeight = 0;
            stickyItems.forEach(function (sticky) {
                var _a = sticky.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;
                if (sticky.nonStickyContent) {
                    if (isStickyTop) {
                        stickyTopHeight += sticky.nonStickyContent.offsetHeight;
                    }
                    if (isStickyBottom) {
                        stickyBottomHeight += sticky.nonStickyContent.offsetHeight;
                    }
                    _this._checkStickyStatus(sticky);
                }
            });
            _this.setState({
                stickyTopHeight: stickyTopHeight,
                stickyBottomHeight: stickyBottomHeight
            });
        };
        _this.notifySubscribers = function () {
            if (_this.contentContainer) {
                _this._subscribers.forEach(function (handle) {
                    // this.stickyBelow is passed in for calculating distance to determine Sticky status
                    handle(_this.contentContainer, _this.stickyBelow);
                });
            }
        };
        _this.getScrollPosition = function () {
            if (_this.contentContainer) {
                return _this.contentContainer.scrollTop;
            }
            return 0;
        };
        _this.syncScrollSticky = function (sticky) {
            if (sticky && _this.contentContainer) {
                sticky.syncScroll(_this.contentContainer);
            }
        };
        _this._getScrollablePaneContext = function () {
            return {
                scrollablePane: {
                    subscribe: _this.subscribe,
                    unsubscribe: _this.unsubscribe,
                    addSticky: _this.addSticky,
                    removeSticky: _this.removeSticky,
                    updateStickyRefHeights: _this.updateStickyRefHeights,
                    sortSticky: _this.sortSticky,
                    notifySubscribers: _this.notifySubscribers,
                    syncScrollSticky: _this.syncScrollSticky
                }
            };
        };
        _this._addToStickyContainer = function (sticky, stickyContainer, stickyContentToAdd) {
            // If there's no children, append child to list, otherwise, sort though array and append at correct position
            if (!stickyContainer.children.length) {
                stickyContainer.appendChild(stickyContentToAdd);
            }
            else {
                // If stickyContentToAdd isn't a child element of target container, then append
                if (!stickyContainer.contains(stickyContentToAdd)) {
                    var stickyChildrenElements_1 = [].slice.call(stickyContainer.children);
                    var stickyList_1 = [];
                    // Get stickies.  Filter by canStickyTop/Bottom, then sort by distance from top, and then
                    // filter by elements that are in the stickyContainer already.
                    _this._stickies.forEach(function (stickyItem) {
                        if (stickyContainer === _this.stickyAbove && sticky.canStickyTop) {
                            stickyList_1.push(stickyItem);
                        }
                        else if (sticky.canStickyBottom) {
                            stickyList_1.push(stickyItem);
                        }
                    });
                    var stickyListSorted = stickyList_1
                        .sort(function (a, b) {
                        return (a.state.distanceFromTop || 0) - (b.state.distanceFromTop || 0);
                    })
                        .filter(function (item) {
                        var stickyContent = stickyContainer === _this.stickyAbove ? item.stickyContentTop : item.stickyContentBottom;
                        if (stickyContent) {
                            return stickyChildrenElements_1.indexOf(stickyContent) > -1;
                        }
                    });
                    // Get first element that has a distance from top that is further than our sticky that is being added
                    var targetStickyToAppendBefore = undefined;
                    for (var i in stickyListSorted) {
                        if ((stickyListSorted[i].state.distanceFromTop || 0) >= (sticky.state.distanceFromTop || 0)) {
                            targetStickyToAppendBefore = stickyListSorted[i];
                            break;
                        }
                    }
                    // If target element to append before is known, then grab respective stickyContentTop/Bottom element and insert before
                    var targetContainer = null;
                    if (targetStickyToAppendBefore) {
                        targetContainer =
                            stickyContainer === _this.stickyAbove
                                ? targetStickyToAppendBefore.stickyContentTop
                                : targetStickyToAppendBefore.stickyContentBottom;
                    }
                    stickyContainer.insertBefore(stickyContentToAdd, targetContainer);
                }
            }
        };
        _this._removeStickyFromContainers = function (sticky) {
            if (_this.stickyAbove && sticky.stickyContentTop && _this.stickyAbove.contains(sticky.stickyContentTop)) {
                _this.stickyAbove.removeChild(sticky.stickyContentTop);
            }
            if (_this.stickyBelow && sticky.stickyContentBottom && _this.stickyBelow.contains(sticky.stickyContentBottom)) {
                _this.stickyBelow.removeChild(sticky.stickyContentBottom);
            }
        };
        _this._onWindowResize = function () {
            var scrollbarWidth = _this._getScrollbarWidth();
            var scrollbarHeight = _this._getScrollbarHeight();
            _this.setState({
                scrollbarWidth: scrollbarWidth,
                scrollbarHeight: scrollbarHeight
            });
            _this.notifySubscribers();
        };
        _this._getStickyContainerStyle = function (height, isTop) {
            return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ height: height }, (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()
                ? {
                    right: '0',
                    left: (_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0) + "px"
                }
                : {
                    left: '0',
                    right: (_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0) + "px"
                }), (isTop
                ? {
                    top: '0'
                }
                : {
                    bottom: (_this.state.scrollbarHeight || _this._getScrollbarHeight() || 0) + "px"
                }));
        };
        _this._onScroll = function () {
            var contentContainer = _this.contentContainer;
            if (contentContainer) {
                _this._stickies.forEach(function (sticky) {
                    sticky.syncScroll(contentContainer);
                });
            }
            _this._notifyThrottled();
        };
        _this._subscribers = new Set();
        _this._stickies = new Set();
        _this.state = {
            stickyTopHeight: 0,
            stickyBottomHeight: 0,
            scrollbarWidth: 0,
            scrollbarHeight: 0
        };
        _this._notifyThrottled = _this._async.throttle(_this.notifySubscribers, 50);
        return _this;
    }
    Object.defineProperty(ScrollablePaneBase.prototype, "root", {
        get: function () {
            return this._root.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ScrollablePaneBase.prototype, "stickyAbove", {
        get: function () {
            return this._stickyAboveRef.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ScrollablePaneBase.prototype, "stickyBelow", {
        get: function () {
            return this._stickyBelowRef.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(ScrollablePaneBase.prototype, "contentContainer", {
        get: function () {
            return this._contentContainer.current;
        },
        enumerable: true,
        configurable: true
    });
    ScrollablePaneBase.prototype.componentDidMount = function () {
        var _this = this;
        var initialScrollPosition = this.props.initialScrollPosition;
        this._events.on(this.contentContainer, 'scroll', this._onScroll);
        this._events.on(window, 'resize', this._onWindowResize);
        if (this.contentContainer && initialScrollPosition) {
            this.contentContainer.scrollTop = initialScrollPosition;
        }
        // Set sticky distances from top property, then sort in correct order and notify subscribers
        this.setStickiesDistanceFromTop();
        this._stickies.forEach(function (sticky) {
            _this.sortSticky(sticky);
        });
        this.notifySubscribers();
        if ('MutationObserver' in window) {
            this._mutationObserver = new MutationObserver(function (mutation) {
                // Function to check if mutation is occuring in stickyAbove or stickyBelow
                function checkIfMutationIsSticky(mutationRecord) {
                    if (this.stickyAbove !== null && this.stickyBelow !== null) {
                        return this.stickyAbove.contains(mutationRecord.target) || this.stickyBelow.contains(mutationRecord.target);
                    }
                    return false;
                }
                // Compute the scrollbar height which might have changed due to change in width of the content which might cause overflow
                var scrollbarHeight = _this._getScrollbarHeight();
                // check if the scroll bar height has changed and update the state so that it's postioned correctly below sticky footer
                if (scrollbarHeight !== _this.state.scrollbarHeight) {
                    _this.setState({
                        scrollbarHeight: scrollbarHeight
                    });
                }
                // Notify subscribers again to re-check whether Sticky should be Sticky'd or not
                _this.notifySubscribers();
                // If mutation occurs in sticky header or footer, then update sticky top/bottom heights
                if (mutation.some(checkIfMutationIsSticky.bind(_this))) {
                    _this.updateStickyRefHeights();
                }
                else {
                    // If mutation occurs in scrollable region, then find Sticky it belongs to and force update
                    var stickyList_2 = [];
                    _this._stickies.forEach(function (sticky) {
                        if (sticky.root && sticky.root.contains(mutation[0].target)) {
                            stickyList_2.push(sticky);
                        }
                    });
                    if (stickyList_2.length) {
                        stickyList_2.forEach(function (sticky) {
                            sticky.forceUpdate();
                        });
                    }
                }
            });
            if (this.root) {
                this._mutationObserver.observe(this.root, {
                    childList: true,
                    attributes: true,
                    subtree: true,
                    characterData: true
                });
            }
        }
    };
    ScrollablePaneBase.prototype.componentWillUnmount = function () {
        this._events.off(this.contentContainer);
        this._events.off(window);
        if (this._mutationObserver) {
            this._mutationObserver.disconnect();
        }
    };
    // Only updates if props/state change, just to prevent excessive setState with updateStickyRefHeights
    ScrollablePaneBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {
        return (this.props.children !== nextProps.children ||
            this.props.initialScrollPosition !== nextProps.initialScrollPosition ||
            this.props.className !== nextProps.className ||
            this.state.stickyTopHeight !== nextState.stickyTopHeight ||
            this.state.stickyBottomHeight !== nextState.stickyBottomHeight ||
            this.state.scrollbarWidth !== nextState.scrollbarWidth ||
            this.state.scrollbarHeight !== nextState.scrollbarHeight);
    };
    ScrollablePaneBase.prototype.componentDidUpdate = function (prevProps, prevState) {
        var initialScrollPosition = this.props.initialScrollPosition;
        if (this.contentContainer && typeof initialScrollPosition === 'number' && prevProps.initialScrollPosition !== initialScrollPosition) {
            this.contentContainer.scrollTop = initialScrollPosition;
        }
        // Update subscribers when stickyTopHeight/stickyBottomHeight changes
        if (prevState.stickyTopHeight !== this.state.stickyTopHeight || prevState.stickyBottomHeight !== this.state.stickyBottomHeight) {
            this.notifySubscribers();
        }
        this._async.setTimeout(this._onWindowResize, 0);
    };
    ScrollablePaneBase.prototype.render = function () {
        var _a = this.props, className = _a.className, theme = _a.theme, styles = _a.styles;
        var _b = this.state, stickyTopHeight = _b.stickyTopHeight, stickyBottomHeight = _b.stickyBottomHeight;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            scrollbarVisibility: this.props.scrollbarVisibility
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]), { ref: this._root, className: classNames.root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._contentContainer, className: classNames.contentContainer, "data-is-scrollable": true },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ScrollablePane_types__WEBPACK_IMPORTED_MODULE_3__["ScrollablePaneContext"].Provider, { value: this._getScrollablePaneContext() }, this.props.children)),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._stickyAboveRef, className: classNames.stickyAbove, style: this._getStickyContainerStyle(stickyTopHeight, true) }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.stickyBelow, style: this._getStickyContainerStyle(stickyBottomHeight, false) },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._stickyBelowRef, className: classNames.stickyBelowItems }))));
    };
    ScrollablePaneBase.prototype.setStickiesDistanceFromTop = function () {
        var _this = this;
        if (this.contentContainer) {
            this._stickies.forEach(function (sticky) {
                sticky.setDistanceFromTop(_this.contentContainer);
            });
        }
    };
    ScrollablePaneBase.prototype.forceLayoutUpdate = function () {
        this._onWindowResize();
    };
    ScrollablePaneBase.prototype._checkStickyStatus = function (sticky) {
        if (this.stickyAbove && this.stickyBelow && this.contentContainer && sticky.nonStickyContent) {
            // If sticky is sticky, then append content to appropriate container
            if (sticky.state.isStickyTop || sticky.state.isStickyBottom) {
                if (sticky.state.isStickyTop && !this.stickyAbove.contains(sticky.nonStickyContent) && sticky.stickyContentTop) {
                    sticky.addSticky(sticky.stickyContentTop);
                }
                if (sticky.state.isStickyBottom && !this.stickyBelow.contains(sticky.nonStickyContent) && sticky.stickyContentBottom) {
                    sticky.addSticky(sticky.stickyContentBottom);
                }
            }
            else if (!this.contentContainer.contains(sticky.nonStickyContent)) {
                // Reset sticky if it's not sticky and not in the contentContainer element
                sticky.resetSticky();
            }
        }
    };
    ScrollablePaneBase.prototype._getScrollbarWidth = function () {
        var contentContainer = this.contentContainer;
        return contentContainer ? contentContainer.offsetWidth - contentContainer.clientWidth : 0;
    };
    ScrollablePaneBase.prototype._getScrollbarHeight = function () {
        var contentContainer = this.contentContainer;
        return contentContainer ? contentContainer.offsetHeight - contentContainer.clientHeight : 0;
    };
    return ScrollablePaneBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/ScrollablePane/ScrollablePane.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollablePane", function() { return ScrollablePane; });
/* harmony import */ var _ScrollablePane_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.styles.js");
/* harmony import */ var _ScrollablePane_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.base.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var ScrollablePane = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(_ScrollablePane_base__WEBPACK_IMPORTED_MODULE_1__["ScrollablePaneBase"], _ScrollablePane_styles__WEBPACK_IMPORTED_MODULE_0__["getStyles"], undefined, { scope: 'ScrollablePane' });


/***/ }),

/***/ "./lib/components/ScrollablePane/ScrollablePane.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ScrollablePane',
    contentContainer: 'ms-ScrollablePane--contentContainer'
};
var getStyles = function (props) {
    var _a, _b;
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var AboveAndBelowStyles = {
        position: 'absolute',
        pointerEvents: 'auto'
    };
    var positioningStyle = {
        position: 'absolute',
        top: 0,
        right: 0,
        bottom: 0,
        left: 0,
        WebkitOverflowScrolling: 'touch'
    };
    return {
        root: [classNames.root, theme.fonts.medium, positioningStyle, className],
        contentContainer: [
            classNames.contentContainer,
            {
                overflowY: props.scrollbarVisibility === 'always' ? 'scroll' : 'auto'
            },
            positioningStyle
        ],
        stickyAbove: [
            {
                top: 0,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderBottom: '1px solid WindowText'
                    },
                    _a)
            },
            AboveAndBelowStyles
        ],
        stickyBelow: [
            {
                bottom: 0,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderTop: '1px solid WindowText'
                    },
                    _b)
            },
            AboveAndBelowStyles
        ],
        stickyBelowItems: [
            {
                bottom: 0
            },
            AboveAndBelowStyles,
            {
                width: '100%'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/ScrollablePane/ScrollablePane.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return ScrollbarVisibility; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneContext", function() { return ScrollablePaneContext; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

/**
 * {@docCategory ScrollablePane}
 */
var ScrollbarVisibility = {
    auto: 'auto',
    always: 'always'
};
var ScrollablePaneContext = react__WEBPACK_IMPORTED_MODULE_0__["createContext"]({ scrollablePane: undefined });


/***/ }),

/***/ "./lib/components/ScrollablePane/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ScrollablePane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePane", function() { return _ScrollablePane__WEBPACK_IMPORTED_MODULE_0__["ScrollablePane"]; });

/* harmony import */ var _ScrollablePane_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneBase", function() { return _ScrollablePane_base__WEBPACK_IMPORTED_MODULE_1__["ScrollablePaneBase"]; });

/* harmony import */ var _ScrollablePane_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return _ScrollablePane_types__WEBPACK_IMPORTED_MODULE_2__["ScrollbarVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneContext", function() { return _ScrollablePane_types__WEBPACK_IMPORTED_MODULE_2__["ScrollablePaneContext"]; });






/***/ }),

/***/ "./lib/components/SearchBox/SearchBox.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchBoxBase", function() { return SearchBoxBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Icon.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var COMPONENT_NAME = 'SearchBox';
var SearchBoxBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SearchBoxBase, _super);
    function SearchBoxBase(props) {
        var _this = _super.call(this, props) || this;
        _this._rootElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._inputElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onClickFocus = function () {
            var inputElement = _this._inputElement.current;
            if (inputElement) {
                _this.focus();
                inputElement.selectionStart = inputElement.selectionEnd = 0;
            }
        };
        _this._onFocusCapture = function (ev) {
            _this.setState({
                hasFocus: true
            });
            if (!_this._events) {
                _this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["EventGroup"](_this);
            }
            _this._events.on(ev.currentTarget, 'blur', _this._onBlur, true);
            if (_this.props.onFocus) {
                _this.props.onFocus(ev);
            }
        };
        _this._onClearClick = function (ev) {
            var clearButtonProps = _this.props.clearButtonProps;
            if (clearButtonProps && clearButtonProps.onClick) {
                clearButtonProps.onClick(ev);
            }
            if (!ev.defaultPrevented) {
                _this._onClear(ev);
            }
        };
        _this._onKeyDown = function (ev) {
            switch (ev.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    _this.props.onEscape && _this.props.onEscape(ev);
                    if (!ev.defaultPrevented) {
                        _this._onClear(ev);
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter:
                    if (_this.props.onSearch) {
                        _this.props.onSearch(_this.state.value);
                        break;
                    }
                    // if we don't handle the enter press then we shouldn't prevent default
                    return;
                default:
                    _this.props.onKeyDown && _this.props.onKeyDown(ev);
                    if (!ev.defaultPrevented) {
                        return;
                    }
            }
            // We only get here if the keypress has been handled,
            // or preventDefault was called in case of default keyDown handler
            ev.preventDefault();
            ev.stopPropagation();
        };
        _this._onBlur = function (ev) {
            if (_this._events) {
                _this._events.off();
            }
            _this.setState({
                hasFocus: false
            });
            if (_this.props.onBlur) {
                _this.props.onBlur(ev);
            }
        };
        _this._onInputChange = function (ev) {
            var value = ev.target.value;
            if (value === _this._latestValue) {
                return;
            }
            _this._latestValue = value;
            _this.setState({ value: value });
            _this._callOnChange(ev, value);
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnDeprecations"])(COMPONENT_NAME, props, {
            labelText: 'placeholder',
            defaultValue: 'value'
        });
        _this._latestValue = props.value || '';
        _this._fallbackId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])(COMPONENT_NAME);
        _this.state = {
            value: _this._latestValue,
            hasFocus: false
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    SearchBoxBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.value !== undefined) {
            this._latestValue = newProps.value;
            // If the user passes in null, substitute an empty string
            // (passing null is not allowed per typings, but users might do it anyway)
            this.setState({
                value: newProps.value || ''
            });
        }
    };
    // tslint:disable-next-line function-name
    SearchBoxBase.prototype.UNSAFE_componentWillMount = function () {
        if (this._events) {
            this._events.dispose();
        }
    };
    SearchBoxBase.prototype.render = function () {
        var _a = this.props, ariaLabel = _a.ariaLabel, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, underlined = _a.underlined, styles = _a.styles, labelText = _a.labelText, theme = _a.theme, clearButtonProps = _a.clearButtonProps, disableAnimation = _a.disableAnimation, iconProps = _a.iconProps, _b = _a.id, id = _b === void 0 ? this._fallbackId : _b;
        var _c = this.state, value = _c.value, hasFocus = _c.hasFocus;
        var placeholderValue = labelText === undefined ? placeholder : labelText;
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            underlined: underlined,
            hasFocus: hasFocus,
            disabled: disabled,
            hasInput: value.length > 0,
            disableAnimation: disableAnimation
        });
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["inputProperties"], [
            'className',
            'placeholder',
            'onFocus',
            'onBlur',
            'value'
        ]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "search", ref: this._rootElement, className: classNames.root, onFocusCapture: this._onFocusCapture },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.iconContainer, onClick: this._onClickFocus, "aria-hidden": true },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ iconName: "Search" }, iconProps, { className: classNames.icon }))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { id: id, className: classNames.field, placeholder: placeholderValue, onChange: this._onInputChange, onInput: this._onInputChange, onKeyDown: this._onKeyDown, value: value, disabled: disabled, role: "searchbox", "aria-label": ariaLabel ? ariaLabel : placeholder, ref: this._inputElement })),
            value.length > 0 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.clearButton },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ styles: { root: { height: 'auto' }, icon: { fontSize: '12px' } }, iconProps: { iconName: 'Clear' } }, clearButtonProps, { onClick: this._onClearClick }))))));
    };
    /**
     * Sets focus to the search box input field
     */
    SearchBoxBase.prototype.focus = function () {
        if (this._inputElement.current) {
            this._inputElement.current.focus();
        }
    };
    /**
     * Returns whether or not the SearchBox has focus
     */
    SearchBoxBase.prototype.hasFocus = function () {
        return !!this.state.hasFocus;
    };
    SearchBoxBase.prototype._onClear = function (ev) {
        this.props.onClear && this.props.onClear(ev);
        if (!ev.defaultPrevented) {
            this._latestValue = '';
            this.setState({
                value: ''
            });
            this._callOnChange(undefined, '');
            ev.stopPropagation();
            ev.preventDefault();
            this.focus();
        }
    };
    SearchBoxBase.prototype._callOnChange = function (ev, newValue) {
        var _a = this.props, onChange = _a.onChange, onChanged = _a.onChanged;
        // Call @deprecated method.
        if (onChanged) {
            onChanged(newValue);
        }
        if (onChange) {
            onChange(ev, newValue);
        }
    };
    SearchBoxBase.defaultProps = {
        disableAnimation: false,
        clearButtonProps: { ariaLabel: 'Clear text' }
    };
    return SearchBoxBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/SearchBox/SearchBox.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchBox", function() { return SearchBox; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _SearchBox_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SearchBox/SearchBox.base.js");
/* harmony import */ var _SearchBox_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SearchBox/SearchBox.styles.js");



var SearchBox = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_SearchBox_base__WEBPACK_IMPORTED_MODULE_1__["SearchBoxBase"], _SearchBox_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'SearchBox' });


/***/ }),

/***/ "./lib/components/SearchBox/SearchBox.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-SearchBox',
    iconContainer: 'ms-SearchBox-iconContainer',
    icon: 'ms-SearchBox-icon',
    clearButton: 'ms-SearchBox-clearButton',
    field: 'ms-SearchBox-field'
};
function getStyles(props) {
    var _a, _b, _c, _d;
    var theme = props.theme, underlined = props.underlined, disabled = props.disabled, hasFocus = props.hasFocus, className = props.className, hasInput = props.hasInput, disableAnimation = props.disableAnimation;
    var palette = theme.palette, fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    // placeholder style constants
    var placeholderStyles = {
        color: semanticColors.inputPlaceholderText,
        opacity: 1
    };
    var inputIconAlt = palette.neutralSecondary;
    var inputIconAltHovered = palette.neutralPrimary;
    var inputBorderDisabled = palette.neutralLighter;
    var inputBackgroundHovered = palette.neutralLighter;
    var inputBackgroundDisabled = palette.neutralLighter;
    return {
        root: [
            classNames.root,
            fonts.medium,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                color: semanticColors.inputText,
                backgroundColor: semanticColors.inputBackground,
                display: 'flex',
                flexDirection: 'row',
                flexWrap: 'nowrap',
                alignItems: 'stretch',
                // The 1px top and bottom padding ensure the input field does not overlap the border
                padding: '1px 0 1px 4px',
                borderRadius: effects.roundedCorner2,
                border: "1px solid " + semanticColors.inputBorder,
                height: 32,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText'
                    },
                    _a[':hover'] = {
                        borderColor: semanticColors.inputBorderHovered,
                        selectors: (_b = {},
                            _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                borderColor: 'Highlight'
                            },
                            _b)
                    },
                    _a[":hover ." + classNames.iconContainer] = {
                        color: semanticColors.inputIconHovered
                    },
                    _a)
            },
            !hasFocus &&
                hasInput && {
                selectors: (_c = {},
                    _c[":hover ." + classNames.iconContainer] = {
                        width: 4
                    },
                    _c[":hover ." + classNames.icon] = {
                        opacity: 0
                    },
                    _c)
            },
            hasFocus && [
                'is-active',
                {
                    borderColor: semanticColors.inputFocusBorderAlt,
                    selectors: (_d = {
                            ':hover': {
                                borderColor: semanticColors.inputFocusBorderAlt
                            }
                        },
                        _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            borderColor: 'Highlight'
                        },
                        _d)
                }
            ],
            disabled && [
                'is-disabled',
                {
                    borderColor: inputBorderDisabled,
                    backgroundColor: inputBackgroundDisabled,
                    pointerEvents: 'none',
                    cursor: 'default'
                }
            ],
            underlined && [
                'is-underlined',
                {
                    borderWidth: '0 0 1px 0',
                    borderRadius: 0,
                    // Underlined SearchBox has a larger padding left to vertically align with the waffle in product
                    padding: '1px 0 1px 8px'
                }
            ],
            underlined &&
                disabled && {
                backgroundColor: 'transparent'
            },
            hasInput && 'can-clear',
            className
        ],
        iconContainer: [
            classNames.iconContainer,
            {
                display: 'flex',
                flexDirection: 'column',
                justifyContent: 'center',
                flexShrink: 0,
                fontSize: 16,
                width: 32,
                textAlign: 'center',
                color: semanticColors.inputIcon,
                cursor: 'text'
            },
            hasFocus && {
                width: 4
            },
            disabled && {
                color: semanticColors.inputIconDisabled
            },
            !disableAnimation && {
                transition: "width " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue1
            }
        ],
        icon: [
            classNames.icon,
            {
                opacity: 1
            },
            hasFocus && {
                opacity: 0
            },
            !disableAnimation && {
                transition: "opacity " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue1 + " 0s"
            }
        ],
        clearButton: [
            classNames.clearButton,
            {
                display: 'flex',
                flexDirection: 'row',
                alignItems: 'stretch',
                cursor: 'pointer',
                flexBasis: '32px',
                flexShrink: 0,
                padding: 0,
                margin: '-1px 0px',
                selectors: {
                    '&:hover .ms-Button': {
                        backgroundColor: inputBackgroundHovered
                    },
                    '&:hover .ms-Button-icon': {
                        color: inputIconAltHovered
                    },
                    '.ms-Button': {
                        borderRadius: Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])() ? '1px 0 0 1px' : '0 1px 1px 0'
                    },
                    '.ms-Button-icon': {
                        color: inputIconAlt
                    }
                }
            }
        ],
        field: [
            classNames.field,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(placeholderStyles),
            {
                backgroundColor: 'transparent',
                border: 'none',
                outline: 'none',
                fontWeight: 'inherit',
                fontFamily: 'inherit',
                fontSize: 'inherit',
                color: semanticColors.inputText,
                flex: '1 1 0px',
                // The default implicit value of 'auto' prevents the input from shrinking. Setting min-width to
                // 0px allows the input element to shrink to fit the container.
                minWidth: '0px',
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                // This padding forces the text placement to round up.
                paddingBottom: 0.5,
                // This removes the IE specific clear button in the input since we implimented our own
                selectors: {
                    '::-ms-clear': {
                        display: 'none'
                    }
                }
            },
            disabled && {
                color: semanticColors.disabledText
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/SearchBox/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SearchBox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SearchBox/SearchBox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBox", function() { return _SearchBox__WEBPACK_IMPORTED_MODULE_0__["SearchBox"]; });

/* harmony import */ var _SearchBox_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SearchBox/SearchBox.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBoxBase", function() { return _SearchBox_base__WEBPACK_IMPORTED_MODULE_1__["SearchBoxBase"]; });





/***/ }),

/***/ "./lib/components/SelectedItemsList/BaseSelectedItemsList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseSelectedItemsList", function() { return BaseSelectedItemsList; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Selection.js");



var BaseSelectedItemsList = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseSelectedItemsList, _super);
    function BaseSelectedItemsList(basePickerProps) {
        var _this = _super.call(this, basePickerProps) || this;
        _this.addItems = function (items) {
            // tslint:disable-next-line:no-any
            var processedItems = _this.props.onItemSelected ? _this.props.onItemSelected(items) : items;
            var processedItemObjects = processedItems;
            var processedItemPromiseLikes = processedItems;
            if (processedItemPromiseLikes && processedItemPromiseLikes.then) {
                processedItemPromiseLikes.then(function (resolvedProcessedItems) {
                    var newItems = _this.state.items.concat(resolvedProcessedItems);
                    _this.updateItems(newItems);
                });
            }
            else {
                var newItems = _this.state.items.concat(processedItemObjects);
                _this.updateItems(newItems);
            }
        };
        _this.removeItemAt = function (index) {
            var items = _this.state.items;
            if (_this._canRemoveItem(items[index])) {
                if (index > -1) {
                    if (_this.props.onItemsDeleted) {
                        _this.props.onItemsDeleted([items[index]]);
                    }
                    var newItems = items.slice(0, index).concat(items.slice(index + 1));
                    _this.updateItems(newItems);
                }
            }
        };
        _this.removeItem = function (item) {
            var items = _this.state.items;
            var index = items.indexOf(item);
            _this.removeItemAt(index);
        };
        _this.replaceItem = function (itemToReplace, itemsToReplaceWith) {
            var items = _this.state.items;
            var index = items.indexOf(itemToReplace);
            if (index > -1) {
                var newItems = items
                    .slice(0, index)
                    .concat(itemsToReplaceWith)
                    .concat(items.slice(index + 1));
                _this.updateItems(newItems);
            }
        };
        // tslint:disable-next-line:no-any
        _this.removeItems = function (itemsToRemove) {
            var items = _this.state.items;
            var itemsCanRemove = itemsToRemove.filter(function (item) { return _this._canRemoveItem(item); });
            // tslint:disable-next-line:no-any
            var newItems = items.filter(function (item) { return itemsCanRemove.indexOf(item) === -1; });
            var firstItemToRemove = itemsCanRemove[0];
            var index = items.indexOf(firstItemToRemove);
            if (_this.props.onItemsDeleted) {
                _this.props.onItemsDeleted(itemsCanRemove);
            }
            _this.updateItems(newItems, index);
        };
        _this.onCopy = function (ev) {
            if (_this.props.onCopyItems && _this.selection.getSelectedCount() > 0) {
                var selectedItems = _this.selection.getSelection();
                _this.copyItems(selectedItems);
            }
        };
        _this.renderItems = function () {
            var removeButtonAriaLabel = _this.props.removeButtonAriaLabel;
            var onRenderItem = _this.props.onRenderItem;
            var items = _this.state.items;
            // tslint:disable-next-line:no-any
            return items.map(function (item, index) {
                return onRenderItem({
                    item: item,
                    index: index,
                    key: item.key ? item.key : index,
                    selected: _this.selection.isIndexSelected(index),
                    onRemoveItem: function () { return _this.removeItem(item); },
                    onItemChange: _this.onItemChange,
                    removeButtonAriaLabel: removeButtonAriaLabel,
                    onCopyItem: function (itemToCopy) { return _this.copyItems([itemToCopy]); }
                });
            });
        };
        _this.onSelectionChanged = function () {
            _this.forceUpdate();
        };
        _this.onItemChange = function (changedItem, index) {
            var items = _this.state.items;
            if (index >= 0) {
                var newItems = items;
                newItems[index] = changedItem;
                _this.updateItems(newItems);
            }
        };
        var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];
        _this.state = {
            items: items
        };
        // Create a new selection if one is not specified
        _this.selection = _this.props.selection
            ? _this.props.selection
            : new _Selection__WEBPACK_IMPORTED_MODULE_2__["Selection"]({ onSelectionChanged: _this.onSelectionChanged });
        return _this;
    }
    Object.defineProperty(BaseSelectedItemsList.prototype, "items", {
        get: function () {
            return this.state.items;
        },
        enumerable: true,
        configurable: true
    });
    BaseSelectedItemsList.prototype.removeSelectedItems = function () {
        if (this.state.items.length && this.selection.getSelectedCount() > 0) {
            this.removeItems(this.selection.getSelection());
        }
    };
    /**
     * Controls what happens whenever there is an action that impacts the selected items.
     * If selectedItems is provided as a property then this will act as a controlled component and it will not update it's own state.
     */
    BaseSelectedItemsList.prototype.updateItems = function (items, focusIndex) {
        var _this = this;
        if (this.props.selectedItems) {
            // If the component is a controlled component then the controlling component will need to pass the new props
            this.onChange(items);
        }
        else {
            this.setState({ items: items }, function () {
                _this._onSelectedItemsUpdated(items, focusIndex);
            });
        }
    };
    BaseSelectedItemsList.prototype.hasSelectedItems = function () {
        return this.selection.getSelectedCount() > 0;
    };
    BaseSelectedItemsList.prototype.unselectAll = function () {
        this.selection.setAllSelected(false);
    };
    BaseSelectedItemsList.prototype.highlightedItems = function () {
        return this.selection.getSelection();
    };
    // tslint:disable-next-line function-name
    BaseSelectedItemsList.prototype.UNSAFE_componentWillUpdate = function (newProps, newState) {
        if (newState.items && newState.items !== this.state.items) {
            this.selection.setItems(newState.items);
        }
    };
    BaseSelectedItemsList.prototype.componentDidMount = function () {
        this.selection.setItems(this.state.items);
    };
    // tslint:disable-next-line function-name
    BaseSelectedItemsList.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        var newItems = newProps.selectedItems;
        if (newItems) {
            this.setState({ items: newItems });
        }
        if (newProps.selection) {
            this.selection = newProps.selection;
        }
    };
    // tslint:disable-next-line:no-any
    BaseSelectedItemsList.prototype.render = function () {
        return this.renderItems();
    };
    BaseSelectedItemsList.prototype.onChange = function (items) {
        if (this.props.onChange) {
            this.props.onChange(items);
        }
    };
    BaseSelectedItemsList.prototype.copyItems = function (items) {
        if (this.props.onCopyItems) {
            // tslint:disable-next-line:no-any
            var copyText = this.props.onCopyItems(items);
            var copyInput = document.createElement('input');
            document.body.appendChild(copyInput);
            try {
                // Try to copy the text directly to the clipboard
                copyInput.value = copyText;
                copyInput.select();
                if (!document.execCommand('copy')) {
                    // The command failed. Fallback to the method below.
                    throw new Error();
                }
            }
            catch (err) {
                // no op
            }
            finally {
                document.body.removeChild(copyInput);
            }
        }
    };
    BaseSelectedItemsList.prototype._onSelectedItemsUpdated = function (items, focusIndex) {
        this.onChange(items);
    };
    BaseSelectedItemsList.prototype._canRemoveItem = function (item) {
        return !this.props.canRemoveItem || this.props.canRemoveItem(item);
    };
    return BaseSelectedItemsList;
}(_Utilities__WEBPACK_IMPORTED_MODULE_1__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditingItem", function() { return EditingItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _EditingItem_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.scss.js");

/* tslint:disable */

/* tslint:enable */


// tslint:disable-next-line:no-any
var styles = _EditingItem_scss__WEBPACK_IMPORTED_MODULE_3__;
var EditingItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EditingItem, _super);
    function EditingItem(props) {
        var _this = _super.call(this, props) || this;
        _this._editingFloatingPicker = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._renderEditingSuggestions = function () {
            var FloatingPicker = _this.props.onRenderFloatingPicker;
            var floatingPickerProps = _this.props.floatingPickerProps;
            if (!FloatingPicker || !floatingPickerProps) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null);
            }
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](FloatingPicker, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ componentRef: _this._editingFloatingPicker, onChange: _this._onSuggestionSelected, inputElement: _this._editingInput, selectedItems: [] }, floatingPickerProps)));
        };
        _this._resolveInputRef = function (ref) {
            _this._editingInput = ref;
            _this.forceUpdate(function () {
                _this._editingInput.focus();
            });
        };
        _this._onInputClick = function () {
            _this._editingFloatingPicker.current && _this._editingFloatingPicker.current.showPicker(true /*updatevalue*/);
        };
        _this._onInputBlur = function (ev) {
            if (_this._editingFloatingPicker.current && ev.relatedTarget !== null) {
                var target = ev.relatedTarget;
                if (target.className.indexOf('ms-Suggestions-itemButton') === -1 && target.className.indexOf('ms-Suggestions-sectionButton') === -1) {
                    _this._editingFloatingPicker.current.forceResolveSuggestion();
                }
            }
        };
        _this._onInputChange = function (ev) {
            var value = ev.target.value;
            if (value === '') {
                if (_this.props.onRemoveItem) {
                    _this.props.onRemoveItem();
                }
            }
            else {
                _this._editingFloatingPicker.current && _this._editingFloatingPicker.current.onQueryStringChanged(value);
            }
        };
        _this._onSuggestionSelected = function (item) {
            _this.props.onEditingComplete(_this.props.item, item);
        };
        _this.state = { contextualMenuVisible: false };
        return _this;
    }
    EditingItem.prototype.componentDidMount = function () {
        var getEditingItemText = this.props.getEditingItemText;
        var itemText = getEditingItemText(this.props.item);
        this._editingFloatingPicker.current && this._editingFloatingPicker.current.onQueryStringChanged(itemText);
        this._editingInput.value = itemText;
        this._editingInput.focus();
    };
    EditingItem.prototype.render = function () {
        var itemId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["inputProperties"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { "aria-labelledby": 'editingItemPersona-' + itemId, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-EditingItem', styles.editingContainer) },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { ref: this._resolveInputRef, autoCapitalize: 'off', autoComplete: 'off', onChange: this._onInputChange, onKeyDown: this._onInputKeyDown, onBlur: this._onInputBlur, onClick: this._onInputClick, "data-lpignore": true, className: styles.editingInput, id: itemId })),
            this._renderEditingSuggestions()));
    };
    EditingItem.prototype._onInputKeyDown = function (ev) {
        if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].backspace || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].del) {
            ev.stopPropagation();
        }
    };
    return EditingItem;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editingInput", function() { return editingInput; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editingContainer", function() { return editingContainer; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".editingInput_aec7d74f{border:0px;outline:none;width:100%}.editingInput_aec7d74f::-ms-clear{display:none}.editingContainer_aec7d74f{margin:4px}\n" }]);
var editingInput = "editingInput_aec7d74f";
var editingContainer = "editingContainer_aec7d74f";


/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExtendedSelectedItem", function() { return ExtendedSelectedItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _ExtendedSelectedItem_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.scss.js");

/* tslint:disable */

/* tslint:enable */




// tslint:disable-next-line:no-any
var styles = _ExtendedSelectedItem_scss__WEBPACK_IMPORTED_MODULE_5__;
var ExtendedSelectedItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExtendedSelectedItem, _super);
    function ExtendedSelectedItem(props) {
        var _this = _super.call(this, props) || this;
        _this.persona = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.state = { contextualMenuVisible: false };
        return _this;
    }
    ExtendedSelectedItem.prototype.render = function () {
        var _a, _b;
        var _c = this.props, item = _c.item, onExpandItem = _c.onExpandItem, onRemoveItem = _c.onRemoveItem, removeButtonAriaLabel = _c.removeButtonAriaLabel, index = _c.index, selected = _c.selected;
        var itemId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.persona, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PickerPersona-container', styles.personaContainer, (_a = {}, _a['is-selected ' + styles.personaContainerIsSelected] = selected, _a), (_b = {}, _b['is-invalid ' + styles.validationError] = !item.isValid, _b)), "data-is-focusable": true, "data-is-sub-focuszone": true, "data-selection-index": index, role: 'listitem', "aria-labelledby": 'selectedItemPersona-' + itemId },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { hidden: !item.canExpand || onExpandItem === undefined },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], { onClick: this._onClickIconButton(onExpandItem), iconProps: { iconName: 'Add', style: { fontSize: '14px' } }, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PickerItem-removeButton', styles.expandButton, styles.actionButton), ariaLabel: removeButtonAriaLabel })),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(styles.personaWrapper) },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PickerItem-content', styles.itemContent), id: 'selectedItemPersona-' + itemId },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_3__["Persona"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { onRenderCoin: this.props.renderPersonaCoin, onRenderPrimaryText: this.props.renderPrimaryText, size: _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaSize"].size32 }))),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], { onClick: this._onClickIconButton(onRemoveItem), iconProps: { iconName: 'Cancel', style: { fontSize: '14px' } }, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-PickerItem-removeButton', styles.removeButton, styles.actionButton), ariaLabel: removeButtonAriaLabel }))));
    };
    ExtendedSelectedItem.prototype._onClickIconButton = function (action) {
        return function (ev) {
            ev.stopPropagation();
            ev.preventDefault();
            if (action) {
                action();
            }
        };
    };
    return ExtendedSelectedItem;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaContainer", function() { return personaContainer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hover", function() { return hover; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "actionButton", function() { return actionButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaContainerIsSelected", function() { return personaContainerIsSelected; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validationError", function() { return validationError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "itemContent", function() { return itemContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeButton", function() { return removeButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expandButton", function() { return expandButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaWrapper", function() { return personaWrapper; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "personaDetails", function() { return personaDetails; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "itemContainer", function() { return itemContainer; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".personaContainer_a1e11561{border-radius:15px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:" }, { "theme": "themeLighterAlt", "defaultValue": "#eff6fc" }, { "rawString": ";margin:4px;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;position:relative}.personaContainer_a1e11561::-moz-focus-inner{border:0}.personaContainer_a1e11561{outline:transparent}.personaContainer_a1e11561{position:relative}.ms-Fabric--isFocusVisible .personaContainer_a1e11561:focus:after{content:'';position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;border:1px solid " }, { "theme": "focusBorder", "defaultValue": "#605e5c" }, { "rawString": "}.personaContainer_a1e11561 .ms-Persona-primaryText{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": ";font-size:14px;font-weight:400}.personaContainer_a1e11561 .ms-Persona-primaryText.hover_a1e11561{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561 .ms-Persona-primaryText{color:HighlightText}}.personaContainer_a1e11561 .actionButton_a1e11561:hover{background:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.personaContainer_a1e11561 .actionButton_a1e11561 .ms-Button-icon{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561 .actionButton_a1e11561 .ms-Button-icon{color:HighlightText}}.personaContainer_a1e11561:hover{background:" }, { "theme": "themeLighter", "defaultValue": "#deecf9" }, { "rawString": "}.personaContainer_a1e11561:hover .ms-Persona-primaryText{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": ";font-size:14px;font-weight:400}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561:hover .ms-Persona-primaryText{color:HighlightText}}.personaContainer_a1e11561.personaContainerIsSelected_a1e11561{background:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": "}.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .ms-Persona-primaryText{color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .ms-Persona-primaryText{color:HighlightText}}.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .actionButton_a1e11561{color:" }, { "theme": "white", "defaultValue": "#ffffff" }, { "rawString": "}.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .actionButton_a1e11561 .ms-Button-icon{color:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": "}.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .actionButton_a1e11561 .ms-Button-icon:hover{background:" }, { "theme": "themeDark", "defaultValue": "#005a9e" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561.personaContainerIsSelected_a1e11561 .actionButton_a1e11561 .ms-Button-icon{color:HighlightText}}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561.personaContainerIsSelected_a1e11561{border-color:Highlight;background:Highlight;-ms-high-contrast-adjust:none}}.personaContainer_a1e11561.validationError_a1e11561 .ms-Persona-primaryText{color:" }, { "theme": "red", "defaultValue": "#e81123" }, { "rawString": "}.personaContainer_a1e11561.validationError_a1e11561 .ms-Persona-initials{font-size:20px}@media screen and (-ms-high-contrast: active){.personaContainer_a1e11561{border:1px solid WindowText}}.personaContainer_a1e11561 .itemContent_a1e11561{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;min-width:0px;max-width:100%}.personaContainer_a1e11561 .removeButton_a1e11561{border-radius:15px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33px;height:33px;-ms-flex-preferred-size:32px;flex-basis:32px}.personaContainer_a1e11561 .expandButton_a1e11561{border-radius:15px 0px 0px 15px;height:33px;width:44px;padding-right:16px;position:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:-17px}.personaContainer_a1e11561 .personaWrapper_a1e11561{position:relative;display:inherit}.personaContainer_a1e11561 .personaWrapper_a1e11561 .ms-Persona-details{padding:0px 8px}.personaContainer_a1e11561 .personaDetails_a1e11561{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.itemContainer_a1e11561{display:inline-block;vertical-align:top}\n" }]);
var personaContainer = "personaContainer_a1e11561";
var hover = "hover_a1e11561";
var actionButton = "actionButton_a1e11561";
var personaContainerIsSelected = "personaContainerIsSelected_a1e11561";
var validationError = "validationError_a1e11561";
var itemContent = "itemContent_a1e11561";
var removeButton = "removeButton_a1e11561";
var expandButton = "expandButton_a1e11561";
var personaWrapper = "personaWrapper_a1e11561";
var personaDetails = "personaDetails_a1e11561";
var itemContainer = "itemContainer_a1e11561";


/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/Items/SelectedItemWithContextMenu.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectedItemWithContextMenu", function() { return SelectedItemWithContextMenu; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ContextualMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/ContextualMenu.js");

/* tslint:disable */

/* tslint:enable */


var SelectedItemWithContextMenu = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SelectedItemWithContextMenu, _super);
    function SelectedItemWithContextMenu(props) {
        var _this = _super.call(this, props) || this;
        _this.itemElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onClick = function (ev) {
            ev.preventDefault();
            if (_this.props.beginEditing && !_this.props.item.isValid) {
                _this.props.beginEditing(_this.props.item);
            }
            else {
                _this.setState({ contextualMenuVisible: true });
            }
        };
        _this._onCloseContextualMenu = function (ev) {
            _this.setState({ contextualMenuVisible: false });
        };
        _this.state = { contextualMenuVisible: false };
        return _this;
    }
    SelectedItemWithContextMenu.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.itemElement, onContextMenu: this._onClick },
            this.props.renderedItem,
            this.state.contextualMenuVisible ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ContextualMenu__WEBPACK_IMPORTED_MODULE_3__["ContextualMenu"], { items: this.props.menuItems, shouldFocusOnMount: true, target: this.itemElement.current, onDismiss: this._onCloseContextualMenu, directionalHint: _ContextualMenu__WEBPACK_IMPORTED_MODULE_3__["DirectionalHint"].bottomLeftEdge })) : null));
    };
    return SelectedItemWithContextMenu;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/SelectedItemsList/SelectedPeopleList/SelectedPeopleList.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasePeopleSelectedItemsList", function() { return BasePeopleSelectedItemsList; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectedPeopleList", function() { return SelectedPeopleList; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseSelectedItemsList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SelectedItemsList/BaseSelectedItemsList.js");
/* harmony import */ var _Items_ExtendedSelectedItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.js");
/* harmony import */ var _Items_SelectedItemWithContextMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/SelectedItemWithContextMenu.js");
/* harmony import */ var _Items_EditingItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/EditingItem.js");

/* tslint:disable */

/* tslint:enable */




/**
 * {@docCategory SelectedPeopleList}
 */
var BasePeopleSelectedItemsList = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BasePeopleSelectedItemsList, _super);
    function BasePeopleSelectedItemsList() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return BasePeopleSelectedItemsList;
}(_BaseSelectedItemsList__WEBPACK_IMPORTED_MODULE_2__["BaseSelectedItemsList"]));

/**
 * Standard People Picker.
 */
var SelectedPeopleList = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SelectedPeopleList, _super);
    function SelectedPeopleList() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.renderItems = function () {
            var items = _this.state.items;
            // tslint:disable-next-line:no-any
            return items.map(function (item, index) { return _this._renderItem(item, index); });
        };
        _this._beginEditing = function (item) {
            item.isEditing = true;
            _this.forceUpdate();
        };
        // tslint:disable-next-line:no-any
        _this._completeEditing = function (oldItem, newItem) {
            oldItem.isEditing = false;
            _this.replaceItem(oldItem, newItem);
        };
        return _this;
    }
    // tslint:disable-next-line:no-any
    SelectedPeopleList.prototype._renderItem = function (item, index) {
        var _this = this;
        var removeButtonAriaLabel = this.props.removeButtonAriaLabel;
        var expandGroup = this.props.onExpandGroup;
        var props = {
            item: item,
            index: index,
            key: item.key ? item.key : index,
            selected: this.selection.isIndexSelected(index),
            onRemoveItem: function () { return _this.removeItem(item); },
            onItemChange: this.onItemChange,
            removeButtonAriaLabel: removeButtonAriaLabel,
            onCopyItem: function (itemToCopy) { return _this.copyItems([itemToCopy]); },
            onExpandItem: expandGroup ? function () { return expandGroup(item); } : undefined,
            menuItems: this._createMenuItems(item)
        };
        var hasContextMenu = props.menuItems.length > 0;
        if (item.isEditing && hasContextMenu) {
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Items_EditingItem__WEBPACK_IMPORTED_MODULE_5__["EditingItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props, { onRenderFloatingPicker: this.props.onRenderFloatingPicker, floatingPickerProps: this.props.floatingPickerProps, onEditingComplete: this._completeEditing, getEditingItemText: this.props.getEditingItemText })));
        }
        else {
            // This cast is here because we are guaranteed that onRenderItem is set
            // from static defaultProps
            // TODO: Move this component to composition with required onRenderItem to remove
            // this cast.
            var onRenderItem = this.props.onRenderItem;
            var renderedItem = onRenderItem(props);
            return hasContextMenu ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Items_SelectedItemWithContextMenu__WEBPACK_IMPORTED_MODULE_4__["SelectedItemWithContextMenu"], { key: props.key, renderedItem: renderedItem, beginEditing: this._beginEditing, menuItems: this._createMenuItems(props.item), item: props.item })) : (renderedItem);
        }
    };
    // tslint:disable-next-line:no-any
    SelectedPeopleList.prototype._createMenuItems = function (item) {
        var _this = this;
        var menuItems = [];
        if (this.props.editMenuItemText && this.props.getEditingItemText) {
            menuItems.push({
                key: 'Edit',
                text: this.props.editMenuItemText,
                onClick: function (ev, menuItem) {
                    _this._beginEditing(menuItem.data);
                },
                data: item
            });
        }
        if (this.props.removeMenuItemText) {
            menuItems.push({
                key: 'Remove',
                text: this.props.removeMenuItemText,
                onClick: function (ev, menuItem) {
                    _this.removeItem(menuItem.data);
                },
                data: item
            });
        }
        if (this.props.copyMenuItemText) {
            menuItems.push({
                key: 'Copy',
                text: this.props.copyMenuItemText,
                onClick: function (ev, menuItem) {
                    if (_this.props.onCopyItems) {
                        _this.copyItems([menuItem.data]);
                    }
                },
                data: item
            });
        }
        return menuItems;
    };
    // tslint:disable-next-line:no-any
    SelectedPeopleList.defaultProps = {
        onRenderItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Items_ExtendedSelectedItem__WEBPACK_IMPORTED_MODULE_3__["ExtendedSelectedItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props)); }
    };
    return SelectedPeopleList;
}(BasePeopleSelectedItemsList));



/***/ }),

/***/ "./lib/components/SelectedItemsList/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BaseSelectedItemsList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SelectedItemsList/BaseSelectedItemsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSelectedItemsList", function() { return _BaseSelectedItemsList__WEBPACK_IMPORTED_MODULE_0__["BaseSelectedItemsList"]; });

/* harmony import */ var _SelectedPeopleList_SelectedPeopleList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/SelectedPeopleList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeopleSelectedItemsList", function() { return _SelectedPeopleList_SelectedPeopleList__WEBPACK_IMPORTED_MODULE_1__["BasePeopleSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectedPeopleList", function() { return _SelectedPeopleList_SelectedPeopleList__WEBPACK_IMPORTED_MODULE_1__["SelectedPeopleList"]; });

/* harmony import */ var _SelectedPeopleList_Items_ExtendedSelectedItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SelectedItemsList/SelectedPeopleList/Items/ExtendedSelectedItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedSelectedItem", function() { return _SelectedPeopleList_Items_ExtendedSelectedItem__WEBPACK_IMPORTED_MODULE_2__["ExtendedSelectedItem"]; });






/***/ }),

/***/ "./lib/components/Separator/Separator.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeparatorBase", function() { return SeparatorBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
var SeparatorBase = function (props) {
    var styles = props.styles, theme = props.theme, className = props.className, vertical = props.vertical, alignContent = props.alignContent;
    var _classNames = getClassNames(styles, {
        theme: theme,
        className: className,
        alignContent: alignContent,
        vertical: vertical
    });
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: _classNames.root },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: _classNames.content, role: "separator", "aria-orientation": vertical ? 'vertical' : 'horizontal' }, props.children)));
};


/***/ }),

/***/ "./lib/components/Separator/Separator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Separator", function() { return Separator; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Separator_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Separator/Separator.styles.js");
/* harmony import */ var _Separator_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Separator/Separator.base.js");



var Separator = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Separator_base__WEBPACK_IMPORTED_MODULE_2__["SeparatorBase"], _Separator_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'Separator'
});


/***/ }),

/***/ "./lib/components/Separator/Separator.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var getStyles = function (props) {
    var theme = props.theme, alignContent = props.alignContent, vertical = props.vertical, className = props.className;
    var alignStart = alignContent === 'start';
    var alignCenter = alignContent === 'center';
    var alignEnd = alignContent === 'end';
    return {
        root: [
            theme.fonts.medium,
            {
                position: 'relative'
            },
            alignContent && {
                textAlign: alignContent
            },
            !alignContent && {
                textAlign: 'center'
            },
            vertical &&
                (alignCenter || !alignContent) && {
                verticalAlign: 'middle'
            },
            vertical &&
                alignStart && {
                verticalAlign: 'top'
            },
            vertical &&
                alignEnd && {
                verticalAlign: 'bottom'
            },
            vertical && {
                padding: '0 4px',
                height: 'inherit',
                display: 'table-cell',
                zIndex: 1,
                selectors: {
                    ':after': {
                        backgroundColor: theme.palette.neutralLighter,
                        width: '1px',
                        content: '""',
                        position: 'absolute',
                        top: '0',
                        bottom: '0',
                        left: '50%',
                        right: '0',
                        zIndex: -1
                    }
                }
            },
            !vertical && {
                padding: '4px 0',
                selectors: {
                    ':before': {
                        backgroundColor: theme.palette.neutralLighter,
                        height: '1px',
                        content: '""',
                        display: 'block',
                        position: 'absolute',
                        top: '50%',
                        bottom: '0',
                        left: '0',
                        right: '0'
                    }
                }
            },
            className
        ],
        content: [
            {
                position: 'relative',
                display: 'inline-block',
                padding: '0 12px',
                color: theme.semanticColors.bodyText,
                background: theme.semanticColors.bodyBackground
            },
            vertical && {
                padding: '12px 0'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Separator/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Separator_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Separator/Separator.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SeparatorBase", function() { return _Separator_base__WEBPACK_IMPORTED_MODULE_0__["SeparatorBase"]; });

/* harmony import */ var _Separator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Separator/Separator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Separator", function() { return _Separator__WEBPACK_IMPORTED_MODULE_1__["Separator"]; });





/***/ }),

/***/ "./lib/components/Shimmer/Shimmer.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerBase", function() { return ShimmerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmerElementsGroup_ShimmerElementsGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js");




var TRANSITION_ANIMATION_INTERVAL = 200; /* ms */
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory Shimmer}
 */
var ShimmerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ShimmerBase, _super);
    function ShimmerBase(props) {
        var _this = _super.call(this, props) || this;
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["initializeComponentRef"])(_this);
        _this.state = {
            contentLoaded: props.isDataLoaded
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["Async"](_this);
        return _this;
    }
    ShimmerBase.prototype.componentDidUpdate = function (prevProps) {
        var _this = this;
        var isDataLoaded = this.props.isDataLoaded;
        if (isDataLoaded !== prevProps.isDataLoaded) {
            this._async.clearTimeout(this._lastTimeoutId);
            // Removing the shimmerWrapper div from the DOM only after the fade out animation completed.
            if (isDataLoaded) {
                this._lastTimeoutId = this._async.setTimeout(function () {
                    _this.setState({
                        contentLoaded: isDataLoaded
                    });
                }, TRANSITION_ANIMATION_INTERVAL);
            }
            else {
                this.setState({
                    contentLoaded: isDataLoaded
                });
            }
        }
    };
    ShimmerBase.prototype.componentWillUnmount = function () {
        this._async.dispose();
    };
    ShimmerBase.prototype.render = function () {
        var _a = this.props, styles = _a.styles, shimmerElements = _a.shimmerElements, children = _a.children, isDataLoaded = _a.isDataLoaded, width = _a.width, className = _a.className, customElementsGroup = _a.customElementsGroup, theme = _a.theme, ariaLabel = _a.ariaLabel, shimmerColors = _a.shimmerColors;
        var contentLoaded = this.state.contentLoaded;
        this._classNames = getClassNames(styles, {
            theme: theme,
            isDataLoaded: isDataLoaded,
            className: className,
            transitionAnimationInterval: TRANSITION_ANIMATION_INTERVAL,
            shimmerColor: shimmerColors && shimmerColors.shimmer,
            shimmerWaveColor: shimmerColors && shimmerColors.shimmerWave
        });
        var divProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, divProps, { className: this._classNames.root }),
            !contentLoaded && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: { width: width ? width : '100%' }, className: this._classNames.shimmerWrapper },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.shimmerGradient }),
                customElementsGroup ? (customElementsGroup) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ShimmerElementsGroup_ShimmerElementsGroup__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementsGroup"], { shimmerElements: shimmerElements, backgroundColor: shimmerColors && shimmerColors.background })))),
            children && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.dataWrapper }, children),
            ariaLabel && !isDataLoaded && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "status", "aria-live": "polite" },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Utilities__WEBPACK_IMPORTED_MODULE_2__["DelayedRender"], null,
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.screenReaderText }, ariaLabel))))));
    };
    ShimmerBase.defaultProps = {
        isDataLoaded: false
    };
    return ShimmerBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Shimmer/Shimmer.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Shimmer", function() { return Shimmer; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Shimmer_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/Shimmer.styles.js");
/* harmony import */ var _Shimmer_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/Shimmer.base.js");



var Shimmer = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Shimmer_base__WEBPACK_IMPORTED_MODULE_2__["ShimmerBase"], _Shimmer_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, {
    scope: 'Shimmer'
});


/***/ }),

/***/ "./lib/components/Shimmer/Shimmer.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var GlobalClassNames = {
    root: 'ms-Shimmer-container',
    shimmerWrapper: 'ms-Shimmer-shimmerWrapper',
    shimmerGradient: 'ms-Shimmer-shimmerGradient',
    dataWrapper: 'ms-Shimmer-dataWrapper'
};
var BACKGROUND_OFF_SCREEN_POSITION = '100%';
var shimmerAnimation = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        transform: "translateX(-" + BACKGROUND_OFF_SCREEN_POSITION + ")"
    },
    '100%': {
        transform: "translateX(" + BACKGROUND_OFF_SCREEN_POSITION + ")"
    }
});
var shimmerAnimationRTL = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '100%': {
        transform: "translateX(-" + BACKGROUND_OFF_SCREEN_POSITION + ")"
    },
    '0%': {
        transform: "translateX(" + BACKGROUND_OFF_SCREEN_POSITION + ")"
    }
});
function getStyles(props) {
    var _a;
    var isDataLoaded = props.isDataLoaded, className = props.className, theme = props.theme, transitionAnimationInterval = props.transitionAnimationInterval, shimmerColor = props.shimmerColor, shimmerWaveColor = props.shimmerWaveColor;
    var semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var isRTL = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])();
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                position: 'relative',
                height: 'auto'
            },
            className
        ],
        shimmerWrapper: [
            classNames.shimmerWrapper,
            {
                position: 'relative',
                overflow: 'hidden',
                transform: 'translateZ(0)',
                backgroundColor: shimmerColor || semanticColors.disabledBackground,
                transition: "opacity " + transitionAnimationInterval + "ms",
                selectors: (_a = {
                        '> *': {
                            transform: 'translateZ(0)'
                        }
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        background: "WindowText\n                        linear-gradient(\n                          to right,\n                          transparent 0%,\n                          Window 50%,\n                          transparent 100%)\n                        0 0 / 90% 100%\n                        no-repeat"
                    },
                    _a)
            },
            isDataLoaded && {
                opacity: '0',
                position: 'absolute',
                top: '0',
                bottom: '0',
                left: '0',
                right: '0'
            }
        ],
        shimmerGradient: [
            classNames.shimmerGradient,
            {
                position: 'absolute',
                top: 0,
                left: 0,
                width: '100%',
                height: '100%',
                background: (shimmerColor || semanticColors.disabledBackground) + "\n                      linear-gradient(\n                        to right,\n                        " + (shimmerColor || semanticColors.disabledBackground) + " 0%,\n                        " + (shimmerWaveColor || semanticColors.bodyDivider) + " 50%,\n                        " + (shimmerColor || semanticColors.disabledBackground) + " 100%)\n                      0 0 / 90% 100%\n                      no-repeat",
                transform: "translateX(-" + BACKGROUND_OFF_SCREEN_POSITION + ")",
                animationDuration: '2s',
                animationTimingFunction: 'ease-in-out',
                animationDirection: 'normal',
                animationIterationCount: 'infinite',
                animationName: isRTL ? shimmerAnimationRTL : shimmerAnimation
            }
        ],
        dataWrapper: [
            classNames.dataWrapper,
            {
                position: 'absolute',
                top: '0',
                bottom: '0',
                left: '0',
                right: '0',
                opacity: '0',
                background: 'none',
                backgroundColor: 'transparent',
                border: 'none',
                transition: "opacity " + transitionAnimationInterval + "ms"
            },
            isDataLoaded && {
                opacity: '1',
                position: 'static'
            }
        ],
        screenReaderText: _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]
    };
}


/***/ }),

/***/ "./lib/components/Shimmer/Shimmer.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementType", function() { return ShimmerElementType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsDefaultHeights", function() { return ShimmerElementsDefaultHeights; });
/**
 * Describes the possible types for shimmer elements used.
 * {@docCategory Shimmer}
 */
var ShimmerElementType;
(function (ShimmerElementType) {
    /**
     * Line element type
     */
    ShimmerElementType[ShimmerElementType["line"] = 1] = "line";
    /**
     * Circle element type
     */
    ShimmerElementType[ShimmerElementType["circle"] = 2] = "circle";
    /**
     * Gap element type
     */
    ShimmerElementType[ShimmerElementType["gap"] = 3] = "gap";
})(ShimmerElementType || (ShimmerElementType = {}));
/**
 * Describes the default heights for shimmer elements when omitted in implementation.
 * {@docCategory Shimmer}
 */
var ShimmerElementsDefaultHeights;
(function (ShimmerElementsDefaultHeights) {
    /**
     * Default height of the line element when not provided by user: 16px
     */
    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights["line"] = 16] = "line";
    /**
     * Default height of the gap element when not provided by user: 16px
     */
    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights["gap"] = 16] = "gap";
    /**
     * Default height of the circle element when not provided by user: 24px
     */
    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights["circle"] = 24] = "circle";
})(ShimmerElementsDefaultHeights || (ShimmerElementsDefaultHeights = {}));


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircleBase", function() { return ShimmerCircleBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
var ShimmerCircleBase = function (props) {
    var height = props.height, styles = props.styles, borderStyle = props.borderStyle, theme = props.theme;
    var classNames = getClassNames(styles, {
        theme: theme,
        height: height,
        borderStyle: borderStyle
    });
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.root },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { viewBox: "0 0 10 10", width: height, height: height, className: classNames.svg },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { 
                // tslint:disable-next-line:max-line-length
                d: "M0,0 L10,0 L10,10 L0,10 L0,0 Z M0,5 C0,7.76142375 2.23857625,10 5,10 C7.76142375,10 10,7.76142375 10,5 C10,2.23857625 7.76142375,2.22044605e-16 5,0 C2.23857625,-2.22044605e-16 0,2.23857625 0,5 L0,5 Z" }))));
};


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircle", function() { return ShimmerCircle; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmerCircle_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js");
/* harmony import */ var _ShimmerCircle_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js");



var ShimmerCircle = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ShimmerCircle_base__WEBPACK_IMPORTED_MODULE_2__["ShimmerCircleBase"], _ShimmerCircle_styles__WEBPACK_IMPORTED_MODULE_1__["getStyles"], undefined, { scope: 'ShimmerCircle' });


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ShimmerCircle-root',
    svg: 'ms-ShimmerCircle-svg'
};
function getStyles(props) {
    var _a, _b;
    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;
    var semanticColors = theme.semanticColors;
    var globalClassNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var borderStyles = !!borderStyle ? borderStyle : {};
    return {
        root: [
            globalClassNames.root,
            theme.fonts.medium,
            {
                width: height + "px",
                height: height + "px",
                minWidth: height + "px",
                boxSizing: 'content-box',
                borderTopStyle: 'solid',
                borderBottomStyle: 'solid',
                borderColor: semanticColors.bodyBackground,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'Window'
                    },
                    _a)
            },
            borderStyles
        ],
        svg: [
            globalClassNames.svg,
            {
                display: 'block',
                fill: semanticColors.bodyBackground,
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        fill: 'Window'
                    },
                    _b)
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroupBase", function() { return ShimmerElementsGroupBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Shimmer/Shimmer.types.js");
/* harmony import */ var _ShimmerLine_ShimmerLine__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Shimmer/ShimmerLine/ShimmerLine.js");
/* harmony import */ var _ShimmerGap_ShimmerGap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Shimmer/ShimmerGap/ShimmerGap.js");
/* harmony import */ var _ShimmerCircle_ShimmerCircle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory Shimmer}
 */
var ShimmerElementsGroupBase = function (props) {
    var styles = props.styles, _a = props.width, width = _a === void 0 ? 'auto' : _a, shimmerElements = props.shimmerElements, _b = props.rowHeight, rowHeight = _b === void 0 ? findMaxElementHeight(shimmerElements || []) : _b, _c = props.flexWrap, flexWrap = _c === void 0 ? false : _c, theme = props.theme, backgroundColor = props.backgroundColor;
    var classNames = getClassNames(styles, {
        theme: theme,
        flexWrap: flexWrap
    });
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: { width: width }, className: classNames.root }, getRenderedElements(shimmerElements, backgroundColor, rowHeight)));
};
function getRenderedElements(shimmerElements, backgroundColor, rowHeight) {
    var renderedElements = shimmerElements ? (shimmerElements.map(function (element, index) {
        var type = element.type, filteredElem = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](element, ["type"]);
        switch (element.type) {
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].circle:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ShimmerCircle_ShimmerCircle__WEBPACK_IMPORTED_MODULE_6__["ShimmerCircle"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: index }, filteredElem, { styles: getElementStyles(element, backgroundColor, rowHeight) }));
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].gap:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ShimmerGap_ShimmerGap__WEBPACK_IMPORTED_MODULE_5__["ShimmerGap"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: index }, filteredElem, { styles: getElementStyles(element, backgroundColor, rowHeight) }));
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].line:
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ShimmerLine_ShimmerLine__WEBPACK_IMPORTED_MODULE_4__["ShimmerLine"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ key: index }, filteredElem, { styles: getElementStyles(element, backgroundColor, rowHeight) }));
        }
    })) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ShimmerLine_ShimmerLine__WEBPACK_IMPORTED_MODULE_4__["ShimmerLine"], { height: _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementsDefaultHeights"].line }));
    return renderedElements;
}
function getElementStyles(element, backgroundColor, rowHeight) {
    var verticalAlign = element.verticalAlign, type = element.type, elementHeight = element.height;
    var dif = rowHeight && elementHeight ? rowHeight - elementHeight : 0;
    var borderStyle;
    if (!verticalAlign || verticalAlign === 'center') {
        borderStyle = {
            borderBottomWidth: (dif ? Math.floor(dif / 2) : 0) + "px",
            borderTopWidth: (dif ? Math.ceil(dif / 2) : 0) + "px"
        };
    }
    else if (verticalAlign && verticalAlign === 'top') {
        borderStyle = {
            borderBottomWidth: dif + "px",
            borderTopWidth: "0px"
        };
    }
    else if (verticalAlign && verticalAlign === 'bottom') {
        borderStyle = {
            borderBottomWidth: "0px",
            borderTopWidth: dif + "px"
        };
    }
    if (backgroundColor) {
        switch (type) {
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].circle:
                return {
                    root: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, borderStyle, { borderColor: backgroundColor }),
                    svg: { fill: backgroundColor }
                };
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].gap:
                return {
                    root: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, borderStyle, { borderColor: backgroundColor, backgroundColor: backgroundColor })
                };
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].line:
                return {
                    root: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, borderStyle, { borderColor: backgroundColor }),
                    topLeftCorner: { fill: backgroundColor },
                    topRightCorner: { fill: backgroundColor },
                    bottomLeftCorner: { fill: backgroundColor },
                    bottomRightCorner: { fill: backgroundColor }
                };
        }
    }
    return {
        root: borderStyle
    };
}
/**
 * User should not worry to provide which of the elements is the highest so we do the calculation for him.
 * Plus if user forgot to specify the height we assign their defaults.
 */
function findMaxElementHeight(shimmerElements) {
    var shimmerElementsDefaulted = shimmerElements.map(function (element) {
        switch (element.type) {
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].circle:
                if (!element.height) {
                    element.height = _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementsDefaultHeights"].circle;
                }
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].line:
                if (!element.height) {
                    element.height = _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementsDefaultHeights"].line;
                }
            case _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementType"].gap:
                if (!element.height) {
                    element.height = _Shimmer_types__WEBPACK_IMPORTED_MODULE_3__["ShimmerElementsDefaultHeights"].gap;
                }
        }
        return element;
    });
    var rowHeight = shimmerElementsDefaulted.reduce(function (acc, next) {
        return next.height ? (next.height > acc ? next.height : acc) : acc;
    }, 0);
    return rowHeight;
}


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroup", function() { return ShimmerElementsGroup; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmerElementsGroup_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js");
/* harmony import */ var _ShimmerElementsGroup_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js");



var ShimmerElementsGroup = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ShimmerElementsGroup_base__WEBPACK_IMPORTED_MODULE_1__["ShimmerElementsGroupBase"], _ShimmerElementsGroup_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ShimmerElementsGroup' });


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ShimmerElementsGroup-root'
};
function getStyles(props) {
    var flexWrap = props.flexWrap, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                display: 'flex',
                alignItems: 'center',
                flexWrap: flexWrap ? 'wrap' : 'nowrap',
                position: 'relative'
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerGapBase", function() { return ShimmerGapBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
/**
 * {@docCategory Shimmer}
 */
var ShimmerGapBase = function (props) {
    var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '10px' : _a, borderStyle = props.borderStyle, theme = props.theme;
    var classNames = getClassNames(styles, {
        theme: theme,
        height: height,
        borderStyle: borderStyle
    });
    return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: { width: width, minWidth: typeof width === 'number' ? width + "px" : 'auto' }, className: classNames.root });
};


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerGap/ShimmerGap.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerGap", function() { return ShimmerGap; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmerGap_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js");
/* harmony import */ var _ShimmerGap_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js");



var ShimmerGap = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ShimmerGap_base__WEBPACK_IMPORTED_MODULE_1__["ShimmerGapBase"], _ShimmerGap_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'ShimmerGap'
});


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ShimmerGap-root'
};
function getStyles(props) {
    var _a;
    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;
    var semanticColors = theme.semanticColors;
    var globalClassNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var borderStyles = !!borderStyle ? borderStyle : {};
    return {
        root: [
            globalClassNames.root,
            theme.fonts.medium,
            {
                backgroundColor: semanticColors.bodyBackground,
                height: height + "px",
                boxSizing: 'content-box',
                borderTopStyle: 'solid',
                borderBottomStyle: 'solid',
                borderColor: semanticColors.bodyBackground,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'Window',
                        borderColor: 'Window'
                    },
                    _a)
            },
            borderStyles
        ]
    };
}


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerLineBase", function() { return ShimmerLineBase; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
/**
 * {@docCategory Shimmer}
 */
var ShimmerLineBase = function (props) {
    var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '100%' : _a, borderStyle = props.borderStyle, theme = props.theme;
    var classNames = getClassNames(styles, {
        theme: theme,
        height: height,
        borderStyle: borderStyle
    });
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { style: { width: width, minWidth: typeof width === 'number' ? width + "px" : 'auto' }, className: classNames.root },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { width: "2", height: "2", className: classNames.topLeftCorner },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M0 2 A 2 2, 0, 0, 1, 2 0 L 0 0 Z" })),
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { width: "2", height: "2", className: classNames.topRightCorner },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M0 0 A 2 2, 0, 0, 1, 2 2 L 2 0 Z" })),
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { width: "2", height: "2", className: classNames.bottomRightCorner },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M2 0 A 2 2, 0, 0, 1, 0 2 L 2 2 Z" })),
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("svg", { width: "2", height: "2", className: classNames.bottomLeftCorner },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("path", { d: "M2 2 A 2 2, 0, 0, 1, 0 0 L 0 2 Z" }))));
};


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerLine/ShimmerLine.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShimmerLine", function() { return ShimmerLine; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ShimmerLine_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js");
/* harmony import */ var _ShimmerLine_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js");



var ShimmerLine = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ShimmerLine_base__WEBPACK_IMPORTED_MODULE_1__["ShimmerLineBase"], _ShimmerLine_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'ShimmerLine'
});


/***/ }),

/***/ "./lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-ShimmerLine-root',
    topLeftCorner: 'ms-ShimmerLine-topLeftCorner',
    topRightCorner: 'ms-ShimmerLine-topRightCorner',
    bottomLeftCorner: 'ms-ShimmerLine-bottomLeftCorner',
    bottomRightCorner: 'ms-ShimmerLine-bottomRightCorner'
};
function getStyles(props) {
    var _a;
    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;
    var semanticColors = theme.semanticColors;
    var globalClassNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var borderStyles = !!borderStyle ? borderStyle : {};
    var sharedCornerStyles = {
        position: 'absolute',
        fill: semanticColors.bodyBackground
    };
    return {
        root: [
            globalClassNames.root,
            theme.fonts.medium,
            {
                height: height + "px",
                boxSizing: 'content-box',
                position: 'relative',
                borderTopStyle: 'solid',
                borderBottomStyle: 'solid',
                borderColor: semanticColors.bodyBackground,
                borderWidth: 0,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'Window',
                        selectors: {
                            '> *': {
                                fill: 'Window'
                            }
                        }
                    },
                    _a)
            },
            borderStyles
        ],
        topLeftCorner: [
            globalClassNames.topLeftCorner,
            {
                top: '0',
                left: '0'
            },
            sharedCornerStyles
        ],
        topRightCorner: [
            globalClassNames.topRightCorner,
            {
                top: '0',
                right: '0'
            },
            sharedCornerStyles
        ],
        bottomRightCorner: [
            globalClassNames.bottomRightCorner,
            {
                bottom: '0',
                right: '0'
            },
            sharedCornerStyles
        ],
        bottomLeftCorner: [
            globalClassNames.bottomLeftCorner,
            {
                bottom: '0',
                left: '0'
            },
            sharedCornerStyles
        ]
    };
}


/***/ }),

/***/ "./lib/components/Shimmer/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Shimmer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Shimmer/Shimmer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shimmer", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_0__["Shimmer"]; });

/* harmony import */ var _Shimmer_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Shimmer/Shimmer.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerBase", function() { return _Shimmer_base__WEBPACK_IMPORTED_MODULE_1__["ShimmerBase"]; });

/* harmony import */ var _Shimmer_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Shimmer/Shimmer.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementType", function() { return _Shimmer_types__WEBPACK_IMPORTED_MODULE_2__["ShimmerElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsDefaultHeights", function() { return _Shimmer_types__WEBPACK_IMPORTED_MODULE_2__["ShimmerElementsDefaultHeights"]; });

/* harmony import */ var _ShimmerLine_ShimmerLine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Shimmer/ShimmerLine/ShimmerLine.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLine", function() { return _ShimmerLine_ShimmerLine__WEBPACK_IMPORTED_MODULE_3__["ShimmerLine"]; });

/* harmony import */ var _ShimmerLine_ShimmerLine_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLineBase", function() { return _ShimmerLine_ShimmerLine_base__WEBPACK_IMPORTED_MODULE_4__["ShimmerLineBase"]; });

/* harmony import */ var _ShimmerCircle_ShimmerCircle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircle", function() { return _ShimmerCircle_ShimmerCircle__WEBPACK_IMPORTED_MODULE_5__["ShimmerCircle"]; });

/* harmony import */ var _ShimmerCircle_ShimmerCircle_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircleBase", function() { return _ShimmerCircle_ShimmerCircle_base__WEBPACK_IMPORTED_MODULE_6__["ShimmerCircleBase"]; });

/* harmony import */ var _ShimmerGap_ShimmerGap__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/Shimmer/ShimmerGap/ShimmerGap.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGap", function() { return _ShimmerGap_ShimmerGap__WEBPACK_IMPORTED_MODULE_7__["ShimmerGap"]; });

/* harmony import */ var _ShimmerGap_ShimmerGap_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGapBase", function() { return _ShimmerGap_ShimmerGap_base__WEBPACK_IMPORTED_MODULE_8__["ShimmerGapBase"]; });

/* harmony import */ var _ShimmerElementsGroup_ShimmerElementsGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroup", function() { return _ShimmerElementsGroup_ShimmerElementsGroup__WEBPACK_IMPORTED_MODULE_9__["ShimmerElementsGroup"]; });

/* harmony import */ var _ShimmerElementsGroup_ShimmerElementsGroup_base__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroupBase", function() { return _ShimmerElementsGroup_ShimmerElementsGroup_base__WEBPACK_IMPORTED_MODULE_10__["ShimmerElementsGroupBase"]; });














/***/ }),

/***/ "./lib/components/Slider/Slider.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ONKEYDOWN_TIMEOUT_DURATION", function() { return ONKEYDOWN_TIMEOUT_DURATION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SliderBase", function() { return SliderBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Label.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ONKEYDOWN_TIMEOUT_DURATION = 1000;
var SliderBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SliderBase, _super);
    function SliderBase(props) {
        var _this = _super.call(this, props) || this;
        _this._sliderLine = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._thumb = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onKeyDownTimer = -1;
        _this._getAriaValueText = function (value) {
            if (_this.props.ariaValueText && value !== undefined) {
                return _this.props.ariaValueText(value);
            }
        };
        _this._onMouseDownOrTouchStart = function (event) {
            if (event.type === 'mousedown') {
                _this._events.on(window, 'mousemove', _this._onMouseMoveOrTouchMove, true);
                _this._events.on(window, 'mouseup', _this._onMouseUpOrTouchEnd, true);
            }
            else if (event.type === 'touchstart') {
                _this._events.on(window, 'touchmove', _this._onMouseMoveOrTouchMove, true);
                _this._events.on(window, 'touchend', _this._onMouseUpOrTouchEnd, true);
            }
            _this._onMouseMoveOrTouchMove(event, true);
        };
        _this._onMouseMoveOrTouchMove = function (event, suppressEventCancelation) {
            if (!_this._sliderLine.current) {
                return;
            }
            var _a = _this.props, max = _a.max, min = _a.min, step = _a.step;
            var steps = (max - min) / step;
            var sliderPositionRect = _this._sliderLine.current.getBoundingClientRect();
            var sliderLength = !_this.props.vertical ? sliderPositionRect.width : sliderPositionRect.height;
            var stepLength = sliderLength / steps;
            var currentSteps;
            var distance;
            if (!_this.props.vertical) {
                var left = _this._getPosition(event, _this.props.vertical);
                distance = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? sliderPositionRect.right - left : left - sliderPositionRect.left;
                currentSteps = distance / stepLength;
            }
            else {
                var bottom = _this._getPosition(event, _this.props.vertical);
                distance = sliderPositionRect.bottom - bottom;
                currentSteps = distance / stepLength;
            }
            var currentValue;
            var renderedValue;
            // The value shouldn't be bigger than max or be smaller than min.
            if (currentSteps > Math.floor(steps)) {
                renderedValue = currentValue = max;
            }
            else if (currentSteps < 0) {
                renderedValue = currentValue = min;
            }
            else {
                renderedValue = min + step * currentSteps;
                currentValue = min + step * Math.round(currentSteps);
            }
            _this._updateValue(currentValue, renderedValue);
            if (!suppressEventCancelation) {
                event.preventDefault();
                event.stopPropagation();
            }
        };
        _this._onMouseUpOrTouchEnd = function (event) {
            // Disable renderedValue override.
            _this.setState({
                renderedValue: undefined
            });
            if (_this.props.onChanged) {
                _this.props.onChanged(event, _this.state.value);
            }
            _this._events.off();
        };
        _this._onKeyDown = function (event) {
            var value = _this.state.value;
            var _a = _this.props, max = _a.max, min = _a.min, step = _a.step;
            var diff = 0;
            switch (event.which) {
                case Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTLSafeKeyCode"])(_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left):
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down:
                    diff = -step;
                    _this._clearOnKeyDownTimer();
                    _this._setOnKeyDownTimer(event);
                    break;
                case Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTLSafeKeyCode"])(_Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right):
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up:
                    diff = step;
                    _this._clearOnKeyDownTimer();
                    _this._setOnKeyDownTimer(event);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].home:
                    value = min;
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].end:
                    value = max;
                    break;
                default:
                    return;
            }
            var newValue = Math.min(max, Math.max(min, value + diff));
            _this._updateValue(newValue, newValue);
            event.preventDefault();
            event.stopPropagation();
        };
        _this._clearOnKeyDownTimer = function () {
            _this._async.clearTimeout(_this._onKeyDownTimer);
        };
        _this._setOnKeyDownTimer = function (event) {
            _this._onKeyDownTimer = _this._async.setTimeout(function () {
                if (_this.props.onChanged) {
                    _this.props.onChanged(event, _this.state.value);
                }
            }, ONKEYDOWN_TIMEOUT_DURATION);
        };
        _this._warnMutuallyExclusive({
            value: 'defaultValue'
        });
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Slider');
        var value = props.value !== undefined ? props.value : props.defaultValue !== undefined ? props.defaultValue : props.min;
        _this.state = {
            value: value,
            renderedValue: undefined
        };
        return _this;
    }
    SliderBase.prototype.render = function () {
        var _a, _b, _c, _d, _e;
        var _f = this.props, ariaLabel = _f.ariaLabel, className = _f.className, disabled = _f.disabled, label = _f.label, max = _f.max, min = _f.min, showValue = _f.showValue, buttonProps = _f.buttonProps, vertical = _f.vertical, valueFormat = _f.valueFormat, styles = _f.styles, theme = _f.theme, originFromZero = _f.originFromZero;
        var value = this.value;
        var renderedValue = this.renderedValue;
        var thumbOffsetPercent = min === max ? 0 : ((renderedValue - min) / (max - min)) * 100;
        var zeroOffsetPercent = min >= 0 ? 0 : (-min / (max - min)) * 100;
        var lengthString = vertical ? 'height' : 'width';
        var onMouseDownProp = disabled ? {} : { onMouseDown: this._onMouseDownOrTouchStart };
        var onTouchStartProp = disabled ? {} : { onTouchStart: this._onMouseDownOrTouchStart };
        var onKeyDownProp = disabled ? {} : { onKeyDown: this._onKeyDown };
        var classNames = getClassNames(styles, {
            className: className,
            disabled: disabled,
            vertical: vertical,
            showTransitions: renderedValue === value,
            showValue: showValue,
            theme: theme
        });
        var divButtonProps = buttonProps ? Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(buttonProps, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"]) : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
            label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: classNames.titleLabel }, (ariaLabel ? {} : { htmlFor: this._id }), { disabled: disabled }), label)),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.container },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ "aria-valuenow": value, "aria-valuemin": min, "aria-valuemax": max, "aria-valuetext": this._getAriaValueText(value), "aria-label": ariaLabel || label, "aria-disabled": disabled }, onMouseDownProp, onTouchStartProp, onKeyDownProp, divButtonProps, { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.slideBox, buttonProps.className), id: this._id, role: "slider", tabIndex: disabled ? undefined : 0, "data-is-focusable": !disabled }),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._sliderLine, className: classNames.line },
                        originFromZero && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.zeroTick), style: this._getStyleUsingOffsetPercent(vertical, zeroOffsetPercent) })),
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { ref: this._thumb, className: classNames.thumb, style: this._getStyleUsingOffsetPercent(vertical, thumbOffsetPercent) }),
                        originFromZero ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.lineContainer, classNames.inactiveSection), style: (_a = {}, _a[lengthString] = Math.min(thumbOffsetPercent, zeroOffsetPercent) + '%', _a) }),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.lineContainer, classNames.activeSection), style: (_b = {}, _b[lengthString] = Math.abs(zeroOffsetPercent - thumbOffsetPercent) + '%', _b) }),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.lineContainer, classNames.inactiveSection), style: (_c = {}, _c[lengthString] = Math.min(100 - thumbOffsetPercent, 100 - zeroOffsetPercent) + '%', _c) }))) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.lineContainer, classNames.activeSection), style: (_d = {}, _d[lengthString] = thumbOffsetPercent + '%', _d) }),
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(classNames.lineContainer, classNames.inactiveSection), style: (_e = {}, _e[lengthString] = 100 - thumbOffsetPercent + '%', _e) }))))),
                showValue && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], { className: classNames.valueLabel, disabled: disabled }, valueFormat ? valueFormat(value) : value)))));
    };
    SliderBase.prototype.focus = function () {
        if (this._thumb.current) {
            this._thumb.current.focus();
        }
    };
    Object.defineProperty(SliderBase.prototype, "value", {
        get: function () {
            var _a = this.props.value, value = _a === void 0 ? this.state.value : _a;
            if (this.props.min === undefined || this.props.max === undefined || value === undefined) {
                return undefined;
            }
            else {
                return Math.max(this.props.min, Math.min(this.props.max, value));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SliderBase.prototype, "renderedValue", {
        get: function () {
            // renderedValue is expected to be defined while user is interacting with control, otherwise `undefined`. Fall back to `value`.
            var _a = this.state.renderedValue, renderedValue = _a === void 0 ? this.value : _a;
            return renderedValue;
        },
        enumerable: true,
        configurable: true
    });
    SliderBase.prototype._getStyleUsingOffsetPercent = function (vertical, thumbOffsetPercent) {
        var _a;
        var direction = vertical ? 'bottom' : Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])() ? 'right' : 'left';
        return _a = {},
            _a[direction] = thumbOffsetPercent + '%',
            _a;
    };
    SliderBase.prototype._getPosition = function (event, vertical) {
        var currentPosition;
        switch (event.type) {
            case 'mousedown':
            case 'mousemove':
                currentPosition = !vertical ? event.clientX : event.clientY;
                break;
            case 'touchstart':
            case 'touchmove':
                currentPosition = !vertical ? event.touches[0].clientX : event.touches[0].clientY;
                break;
        }
        return currentPosition;
    };
    SliderBase.prototype._updateValue = function (value, renderedValue) {
        var _this = this;
        var _a = this.props, step = _a.step, snapToStep = _a.snapToStep;
        var numDec = 0;
        if (isFinite(step)) {
            while (Math.round(step * Math.pow(10, numDec)) / Math.pow(10, numDec) !== step) {
                numDec++;
            }
        }
        // Make sure value has correct number of decimal places based on number of decimals in step
        var roundedValue = parseFloat(value.toFixed(numDec));
        var valueChanged = roundedValue !== this.state.value;
        if (snapToStep) {
            renderedValue = roundedValue;
        }
        this.setState({
            value: roundedValue,
            renderedValue: renderedValue
        }, function () {
            if (valueChanged && _this.props.onChange) {
                _this.props.onChange(_this.state.value);
            }
        });
    };
    SliderBase.defaultProps = {
        step: 1,
        min: 0,
        max: 10,
        showValue: true,
        disabled: false,
        vertical: false,
        buttonProps: {},
        originFromZero: false
    };
    return SliderBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Slider/Slider.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return Slider; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Slider_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Slider/Slider.base.js");
/* harmony import */ var _Slider_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Slider/Slider.styles.js");



var Slider = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Slider_base__WEBPACK_IMPORTED_MODULE_1__["SliderBase"], _Slider_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Slider'
});


/***/ }),

/***/ "./lib/components/Slider/Slider.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../utilities/lib/index.js");


var GlobalClassNames = {
    root: 'ms-Slider',
    enabled: 'ms-Slider-enabled',
    disabled: 'ms-Slider-disabled',
    row: 'ms-Slider-row',
    column: 'ms-Slider-column',
    container: 'ms-Slider-container',
    slideBox: 'ms-Slider-slideBox',
    line: 'ms-Slider-line',
    thumb: 'ms-Slider-thumb',
    activeSection: 'ms-Slider-active',
    inactiveSection: 'ms-Slider-inactive',
    valueLabel: 'ms-Slider-value',
    showValue: 'ms-Slider-showValue',
    showTransitions: 'ms-Slider-showTransitions',
    zeroTick: 'ms-Slider-zeroTick'
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
    var className = props.className, titleLabelClassName = props.titleLabelClassName, theme = props.theme, vertical = props.vertical, disabled = props.disabled, showTransitions = props.showTransitions, showValue = props.showValue;
    var semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    /** Tokens:
     *   The word "active" in the token refers to the selected section of the slider
     *   The word "inactive" in the token refers to the unselected section of the slider */
    var pressedActiveSectionColor = semanticColors.inputBackgroundCheckedHovered;
    var hoveredActiveSectionColor = semanticColors.inputBackgroundChecked;
    var hoveredPressedinactiveSectionColor = semanticColors.inputPlaceholderBackgroundChecked;
    var restActiveSectionColor = semanticColors.smallInputBorder;
    var restInactiveSectionColor = semanticColors.disabledBorder;
    var disabledActiveSectionColor = semanticColors.disabledText;
    var disabledInactiveSectionColor = semanticColors.disabledBackground;
    var thumbBackgroundColor = semanticColors.inputBackground;
    var thumbBorderColor = semanticColors.smallInputBorder;
    var thumbDisabledBorderColor = semanticColors.disabledBorder;
    var slideBoxActiveSectionStyles = !disabled && {
        backgroundColor: pressedActiveSectionColor,
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                backgroundColor: 'Highlight'
            },
            _a)
    };
    var slideBoxInactiveSectionStyles = !disabled && {
        backgroundColor: hoveredPressedinactiveSectionColor,
        selectors: (_b = {},
            _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                borderColor: 'Highlight'
            },
            _b)
    };
    var slideHoverSectionStyles = !disabled && {
        backgroundColor: hoveredActiveSectionColor,
        selectors: (_c = {},
            _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                backgroundColor: 'Highlight'
            },
            _c)
    };
    var slideBoxActiveThumbStyles = !disabled && {
        border: "2px solid " + pressedActiveSectionColor,
        selectors: (_d = {},
            _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                borderColor: 'Highlight'
            },
            _d)
    };
    var slideBoxActiveZeroTickStyles = !props.disabled && {
        backgroundColor: semanticColors.inputPlaceholderBackgroundChecked,
        selectors: (_e = {},
            _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                backgroundColor: 'Highlight'
            },
            _e)
    };
    return {
        root: [
            classNames.root,
            theme.fonts.medium,
            {
                userSelect: 'none'
            },
            vertical && {
                marginRight: 8
            }
        ].concat([!disabled ? classNames.enabled : undefined], [disabled ? classNames.disabled : undefined], [!vertical ? classNames.row : undefined], [vertical ? classNames.column : undefined], [
            className
        ]),
        titleLabel: [
            {
                padding: 0
            },
            titleLabelClassName
        ],
        container: [
            classNames.container,
            {
                display: 'flex',
                flexWrap: 'nowrap',
                alignItems: 'center'
            },
            vertical && {
                flexDirection: 'column',
                height: '100%',
                textAlign: 'center',
                margin: '8px 0'
            }
        ],
        slideBox: [
            classNames.slideBox,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            {
                background: 'transparent',
                border: 'none',
                flexGrow: 1,
                lineHeight: 28,
                display: 'flex',
                alignItems: 'center',
                selectors: (_f = {},
                    _f[":active ." + classNames.activeSection] = slideBoxActiveSectionStyles,
                    _f[":hover ." + classNames.activeSection] = slideHoverSectionStyles,
                    _f[":active ." + classNames.inactiveSection] = slideBoxInactiveSectionStyles,
                    _f[":hover ." + classNames.inactiveSection] = slideBoxInactiveSectionStyles,
                    _f[":active ." + classNames.thumb] = slideBoxActiveThumbStyles,
                    _f[":hover ." + classNames.thumb] = slideBoxActiveThumbStyles,
                    _f[":active ." + classNames.zeroTick] = slideBoxActiveZeroTickStyles,
                    _f[":hover ." + classNames.zeroTick] = slideBoxActiveZeroTickStyles,
                    _f)
            },
            vertical
                ? {
                    height: '100%',
                    width: 28,
                    padding: '8px 0' // Make room for thumb at bottom of line
                }
                : {
                    height: 28,
                    width: 'auto',
                    padding: '0 8px' // Make room for thumb at ends of line
                }
        ].concat([showValue ? classNames.showValue : undefined], [showTransitions ? classNames.showTransitions : undefined]),
        thumb: [
            classNames.thumb,
            {
                borderWidth: 2,
                borderStyle: 'solid',
                borderColor: thumbBorderColor,
                borderRadius: 10,
                boxSizing: 'border-box',
                background: thumbBackgroundColor,
                display: 'block',
                width: 16,
                height: 16,
                position: 'absolute'
            },
            vertical
                ? {
                    left: -6,
                    margin: '0 auto',
                    transform: 'translateY(8px)'
                }
                : {
                    top: -6,
                    transform: Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])() ? 'translateX(50%)' : 'translateX(-50%)'
                },
            showTransitions && {
                transition: "left " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue3 + " " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction1
            },
            disabled && {
                borderColor: thumbDisabledBorderColor,
                selectors: (_g = {},
                    _g[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'GrayText'
                    },
                    _g)
            }
        ],
        line: [
            classNames.line,
            {
                display: 'flex',
                position: 'relative'
            },
            vertical
                ? {
                    height: '100%',
                    width: 4,
                    margin: '0 auto',
                    flexDirection: 'column-reverse'
                }
                : {
                    width: '100%'
                }
        ],
        lineContainer: [
            {
                borderRadius: 4,
                boxSizing: 'border-box'
            },
            vertical
                ? {
                    width: 4,
                    height: '100%'
                }
                : {
                    height: 4,
                    width: '100%'
                }
        ],
        activeSection: [
            classNames.activeSection,
            {
                background: restActiveSectionColor,
                selectors: (_h = {},
                    _h[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'WindowText'
                    },
                    _h)
            },
            showTransitions && {
                transition: "width " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue3 + " " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction1
            },
            disabled && {
                background: disabledActiveSectionColor,
                selectors: (_j = {},
                    _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'GrayText',
                        borderColor: 'GrayText'
                    },
                    _j)
            }
        ],
        inactiveSection: [
            classNames.inactiveSection,
            {
                background: restInactiveSectionColor,
                selectors: (_k = {},
                    _k[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: '1px solid WindowText'
                    },
                    _k)
            },
            showTransitions && {
                transition: "width " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].durationValue3 + " " + _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction1
            },
            disabled && {
                background: disabledInactiveSectionColor,
                selectors: (_l = {},
                    _l[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'GrayText'
                    },
                    _l)
            }
        ],
        zeroTick: [
            classNames.zeroTick,
            {
                position: 'absolute',
                background: semanticColors.disabledBorder,
                selectors: (_m = {},
                    _m[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'WindowText'
                    },
                    _m)
            },
            props.disabled && {
                background: semanticColors.disabledBackground,
                selectors: (_o = {},
                    _o[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        backgroundColor: 'GrayText'
                    },
                    _o)
            },
            props.vertical
                ? {
                    width: '16px',
                    height: '1px',
                    transform: Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_1__["getRTL"])() ? 'translateX(6px)' : 'translateX(-6px)'
                }
                : {
                    width: '1px',
                    height: '16px',
                    transform: 'translateY(-6px)'
                }
        ],
        valueLabel: [
            classNames.valueLabel,
            {
                flexShrink: 1,
                width: 30,
                lineHeight: '1' // using a string here meaning it's relative to the size of the font
            },
            vertical
                ? {
                    margin: '0 auto',
                    whiteSpace: 'nowrap',
                    width: 40
                }
                : {
                    margin: '0 8px',
                    whiteSpace: 'nowrap',
                    width: 40
                }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Slider/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Slider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Slider/Slider.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _Slider__WEBPACK_IMPORTED_MODULE_0__["Slider"]; });

/* harmony import */ var _Slider_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Slider/Slider.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ONKEYDOWN_TIMEOUT_DURATION", function() { return _Slider_base__WEBPACK_IMPORTED_MODULE_1__["ONKEYDOWN_TIMEOUT_DURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SliderBase", function() { return _Slider_base__WEBPACK_IMPORTED_MODULE_1__["SliderBase"]; });





/***/ }),

/***/ "./lib/components/SpinButton/SpinButton.classNames.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/positioning.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (styles, disabled, isFocused, keyboardSpinDirection, labelPosition, className) {
    if (labelPosition === void 0) { labelPosition = _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].start; }
    if (className === void 0) { className = undefined; }
    return {
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.root, className),
        labelWrapper: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.labelWrapper, _getStyleForLabelBasedOnPosition(labelPosition, styles)),
        icon: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.icon, disabled && styles.iconDisabled),
        label: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.label),
        spinButtonWrapper: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.spinButtonWrapper, _getStyleForRootBasedOnPosition(labelPosition, styles), !disabled && [
            {
                selectors: {
                    ':hover': styles.spinButtonWrapperHovered
                }
            },
            isFocused && {
                // This is to increase the specificity of the focus styles
                // and make it equal to that of the hover styles.
                selectors: {
                    '&&': styles.spinButtonWrapperFocused
                }
            }
        ], disabled && styles.spinButtonWrapperDisabled),
        input: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])('ms-spinButton-input', styles.input, !disabled && {
            selectors: {
                '::selection': styles.inputTextSelected
            }
        }, disabled && styles.inputDisabled),
        arrowBox: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(styles.arrowButtonsContainer, disabled && styles.arrowButtonsContainerDisabled)
    };
});
/**
 * Returns the Style corresponding to the label position
 */
function _getStyleForLabelBasedOnPosition(labelPosition, styles) {
    switch (labelPosition) {
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].start:
            return styles.labelWrapperStart;
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].end:
            return styles.labelWrapperEnd;
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].top:
            return styles.labelWrapperTop;
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].bottom:
            return styles.labelWrapperBottom;
    }
}
/**
 * Returns the Style corresponding to the label position
 */
function _getStyleForRootBasedOnPosition(labelPosition, styles) {
    switch (labelPosition) {
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].top:
        case _utilities_positioning__WEBPACK_IMPORTED_MODULE_2__["Position"].bottom:
            return styles.spinButtonWrapperTopBottom;
        default:
            return {};
    }
}


/***/ }),

/***/ "./lib/components/SpinButton/SpinButton.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyboardSpinDirection", function() { return KeyboardSpinDirection; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpinButton", function() { return SpinButton; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_positioning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/positioning.js");
/* harmony import */ var _SpinButton_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/SpinButton/SpinButton.styles.js");
/* harmony import */ var _SpinButton_classNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/SpinButton/SpinButton.classNames.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/KeytipData.js");










var KeyboardSpinDirection;
(function (KeyboardSpinDirection) {
    KeyboardSpinDirection[KeyboardSpinDirection["down"] = -1] = "down";
    KeyboardSpinDirection[KeyboardSpinDirection["notSpinning"] = 0] = "notSpinning";
    KeyboardSpinDirection[KeyboardSpinDirection["up"] = 1] = "up";
})(KeyboardSpinDirection || (KeyboardSpinDirection = {}));
var SpinButton = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SpinButton, _super);
    function SpinButton(props) {
        var _this = _super.call(this, props) || this;
        _this._input = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._initialStepDelay = 400;
        _this._stepDelay = 75;
        _this._onFocus = function (ev) {
            // We can't set focus on a non-existing element
            if (!_this._input.current) {
                return;
            }
            if (_this._spinningByMouse || _this.state.keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {
                _this._stop();
            }
            _this._input.current.select();
            _this.setState({ isFocused: true });
            if (_this.props.onFocus) {
                _this.props.onFocus(ev);
            }
        };
        _this._onBlur = function (ev) {
            _this._validate(ev);
            _this.setState({ isFocused: false });
            if (_this.props.onBlur) {
                _this.props.onBlur(ev);
            }
        };
        _this._onValidate = function (value, event) {
            if (_this.props.onValidate) {
                return _this.props.onValidate(value, event);
            }
            else {
                return _this._defaultOnValidate(value);
            }
        };
        _this._calculatePrecision = function (props) {
            var _a = props.precision, precision = _a === void 0 ? Math.max(Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["calculatePrecision"])(props.step), 0) : _a;
            return precision;
        };
        /**
         * Validate function to use if one is not passed in
         */
        _this._defaultOnValidate = function (value) {
            if (value === null || value.trim().length === 0 || isNaN(Number(value))) {
                return _this._lastValidValue;
            }
            var newValue = Math.min(_this.props.max, Math.max(_this.props.min, Number(value)));
            return String(newValue);
        };
        _this._onIncrement = function (value) {
            if (_this.props.onIncrement) {
                return _this.props.onIncrement(value);
            }
            else {
                return _this._defaultOnIncrement(value);
            }
        };
        /**
         * Increment function to use if one is not passed in
         */
        _this._defaultOnIncrement = function (value) {
            var _a = _this.props, max = _a.max, step = _a.step;
            var newValue = Math.min(Number(value) + Number(step), max);
            newValue = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["precisionRound"])(newValue, _this._precision);
            return String(newValue);
        };
        _this._onDecrement = function (value) {
            if (_this.props.onDecrement) {
                return _this.props.onDecrement(value);
            }
            else {
                return _this._defaultOnDecrement(value);
            }
        };
        /**
         * Increment function to use if one is not passed in
         */
        _this._defaultOnDecrement = function (value) {
            var _a = _this.props, min = _a.min, step = _a.step;
            var newValue = Math.max(Number(value) - Number(step), min);
            newValue = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["precisionRound"])(newValue, _this._precision);
            return String(newValue);
        };
        /**
         * This is used when validating text entry
         * in the input (not when changed via the buttons)
         * @param event - the event that fired
         */
        _this._validate = function (event) {
            if (_this.state.value !== undefined && _this._valueToValidate !== undefined && _this._valueToValidate !== _this._lastValidValue) {
                var newValue = _this._onValidate(_this._valueToValidate, event);
                if (newValue) {
                    _this._lastValidValue = newValue;
                    _this._valueToValidate = undefined;
                    _this.setState({ value: newValue });
                }
            }
        };
        /**
         * The method is needed to ensure we are updating the actual input value.
         * without this our value will never change (and validation will not have the correct number)
         * @param event - the event that was fired
         */
        _this._onInputChange = function (event) {
            var element = event.target;
            var value = element.value;
            _this._valueToValidate = value;
            _this.setState({
                value: value
            });
        };
        /**
         * Update the value with the given stepFunction
         * @param shouldSpin - should we fire off another updateValue when we are done here? This should be true
         * when spinning in response to a mouseDown
         * @param stepFunction - function to use to step by
         */
        _this._updateValue = function (shouldSpin, stepDelay, stepFunction) {
            var newValue = stepFunction(_this.state.value);
            if (newValue) {
                _this._lastValidValue = newValue;
                _this.setState({ value: newValue });
            }
            if (_this._spinningByMouse !== shouldSpin) {
                _this._spinningByMouse = shouldSpin;
            }
            if (shouldSpin) {
                _this._currentStepFunctionHandle = _this._async.setTimeout(function () {
                    _this._updateValue(shouldSpin, _this._stepDelay, stepFunction);
                }, stepDelay);
            }
        };
        /**
         * Stop spinning (clear any currently pending update and set spinning to false)
         */
        _this._stop = function () {
            if (_this._currentStepFunctionHandle >= 0) {
                _this._async.clearTimeout(_this._currentStepFunctionHandle);
                _this._currentStepFunctionHandle = -1;
            }
            if (_this._spinningByMouse || _this.state.keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {
                _this._spinningByMouse = false;
                _this.setState({ keyboardSpinDirection: KeyboardSpinDirection.notSpinning });
            }
        };
        /**
         * Handle keydown on the text field. We need to update
         * the value when up or down arrow are depressed
         * @param event - the keyboardEvent that was fired
         */
        _this._handleKeyDown = function (event) {
            // eat the up and down arrow keys to keep focus in the spinButton
            // (especially when a spinButton is inside of a FocusZone)
            if (event.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].up || event.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].down || event.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].enter) {
                event.preventDefault();
                event.stopPropagation();
            }
            if (_this.props.disabled) {
                _this._stop();
                return;
            }
            var spinDirection = KeyboardSpinDirection.notSpinning;
            switch (event.which) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].up:
                    spinDirection = KeyboardSpinDirection.up;
                    _this._updateValue(false /* shouldSpin */, _this._initialStepDelay, _this._onIncrement);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].down:
                    spinDirection = KeyboardSpinDirection.down;
                    _this._updateValue(false /* shouldSpin */, _this._initialStepDelay, _this._onDecrement);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].enter:
                case _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].tab:
                    _this._validate(event);
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].escape:
                    if (_this.state.value !== _this._lastValidValue) {
                        _this.setState({ value: _this._lastValidValue });
                    }
                    break;
                default:
                    break;
            }
            // style the increment/decrement button to look active
            // when the corresponding up/down arrow keys trigger a step
            if (_this.state.keyboardSpinDirection !== spinDirection) {
                _this.setState({ keyboardSpinDirection: spinDirection });
            }
        };
        /**
         * Make sure that we have stopped spinning on keyUp
         * if the up or down arrow fired this event
         * @param event - keyboard event
         */
        _this._handleKeyUp = function (event) {
            if (_this.props.disabled || event.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].up || event.which === _Utilities__WEBPACK_IMPORTED_MODULE_5__["KeyCodes"].down) {
                _this._stop();
                return;
            }
        };
        _this._onIncrementMouseDown = function () {
            _this._updateValue(true /* shouldSpin */, _this._initialStepDelay, _this._onIncrement);
        };
        _this._onDecrementMouseDown = function () {
            _this._updateValue(true /* shouldSpin */, _this._initialStepDelay, _this._onDecrement);
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["initializeComponentRef"])(_this);
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["initializeFocusRects"])();
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["warnMutuallyExclusive"])('SpinButton', props, {
            value: 'defaultValue'
        });
        var value = props.value || props.defaultValue || String(props.min) || '0';
        _this._lastValidValue = value;
        // Ensure that the autocalculated precision is not negative.
        _this._precision = _this._calculatePrecision(_this.props);
        _this.state = {
            isFocused: false,
            value: value,
            keyboardSpinDirection: KeyboardSpinDirection.notSpinning
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_5__["Async"](_this);
        _this._currentStepFunctionHandle = -1;
        _this._labelId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getId"])('Label');
        _this._inputId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getId"])('input');
        _this._spinningByMouse = false;
        _this._valueToValidate = undefined;
        return _this;
    }
    SpinButton.prototype.componentWillUnmount = function () {
        this._async.dispose();
    };
    /**
     * Invoked when a component is receiving new props. This method is not called for the initial render.
     */
    // tslint:disable-next-line function-name
    SpinButton.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        this._lastValidValue = this.state.value;
        var value = newProps.value ? newProps.value : String(newProps.min);
        if (newProps.defaultValue) {
            value = String(Math.max(newProps.min, Math.min(newProps.max, Number(newProps.defaultValue))));
        }
        if (newProps.value !== undefined) {
            this.setState({
                value: value
            });
        }
        this._precision = this._calculatePrecision(newProps);
    };
    SpinButton.prototype.render = function () {
        var _this = this;
        var _a = this.props, disabled = _a.disabled, label = _a.label, min = _a.min, max = _a.max, labelPosition = _a.labelPosition, iconProps = _a.iconProps, incrementButtonIcon = _a.incrementButtonIcon, incrementButtonAriaLabel = _a.incrementButtonAriaLabel, decrementButtonIcon = _a.decrementButtonIcon, decrementButtonAriaLabel = _a.decrementButtonAriaLabel, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, customStyles = _a.styles, customUpArrowButtonStyles = _a.upArrowButtonStyles, customDownArrowButtonStyles = _a.downArrowButtonStyles, theme = _a.theme, ariaPositionInSet = _a.ariaPositionInSet, ariaSetSize = _a.ariaSetSize, ariaValueNow = _a.ariaValueNow, ariaValueText = _a.ariaValueText, keytipProps = _a.keytipProps, className = _a.className, inputProps = _a.inputProps, iconButtonProps = _a.iconButtonProps;
        var _b = this.state, isFocused = _b.isFocused, value = _b.value, keyboardSpinDirection = _b.keyboardSpinDirection;
        var classNames = this.props.getClassNames
            ? this.props.getClassNames(theme, disabled, isFocused, keyboardSpinDirection, labelPosition, className)
            : Object(_SpinButton_classNames__WEBPACK_IMPORTED_MODULE_8__["getClassNames"])(Object(_SpinButton_styles__WEBPACK_IMPORTED_MODULE_7__["getStyles"])(theme, customStyles), disabled, isFocused, keyboardSpinDirection, labelPosition, className);
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_5__["divProperties"], ['onBlur', 'onFocus', 'className']);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
            labelPosition !== _utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["Position"].bottom && (iconProps || label) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.labelWrapper },
                iconProps && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, iconProps, { className: classNames.icon, "aria-hidden": "true" })),
                label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], { id: this._labelId, htmlFor: this._inputId, className: classNames.label, disabled: disabled }, label)))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_9__["KeytipData"], { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { className: classNames.spinButtonWrapper, "aria-label": ariaLabel && ariaLabel, "aria-posinset": ariaPositionInSet, "aria-setsize": ariaSetSize, "data-ktp-target": keytipAttributes['data-ktp-target'] }),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ value: value, id: _this._inputId, onChange: _this._onChange, onInput: _this._onInputChange, className: classNames.input, type: "text", autoComplete: "off", role: "spinbutton", "aria-labelledby": label && _this._labelId, "aria-valuenow": !isNaN(Number(ariaValueNow)) ? ariaValueNow : !isNaN(Number(value)) ? Number(value) : undefined, "aria-valuetext": ariaValueText ? ariaValueText : isNaN(Number(value)) ? value : undefined, "aria-valuemin": min, "aria-valuemax": max, "aria-describedby": Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["mergeAriaAttributeValues"])(ariaDescribedBy, keytipAttributes['aria-describedby']), onBlur: _this._onBlur, ref: _this._input, onFocus: _this._onFocus, onKeyDown: _this._handleKeyDown, onKeyUp: _this._handleKeyUp, readOnly: disabled, "aria-disabled": disabled, "data-lpignore": true, "data-ktp-execute-target": keytipAttributes['data-ktp-execute-target'] }, inputProps)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: classNames.arrowBox },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_2__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ styles: Object(_SpinButton_styles__WEBPACK_IMPORTED_MODULE_7__["getArrowButtonStyles"])(theme, true, customUpArrowButtonStyles), className: 'ms-UpButton', checked: keyboardSpinDirection === KeyboardSpinDirection.up, disabled: disabled, iconProps: incrementButtonIcon, onMouseDown: _this._onIncrementMouseDown, onMouseLeave: _this._stop, onMouseUp: _this._stop, tabIndex: -1, ariaLabel: incrementButtonAriaLabel, "data-is-focusable": false }, iconButtonProps)),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_2__["IconButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ styles: Object(_SpinButton_styles__WEBPACK_IMPORTED_MODULE_7__["getArrowButtonStyles"])(theme, false, customDownArrowButtonStyles), className: 'ms-DownButton', checked: keyboardSpinDirection === KeyboardSpinDirection.down, disabled: disabled, iconProps: decrementButtonIcon, onMouseDown: _this._onDecrementMouseDown, onMouseLeave: _this._stop, onMouseUp: _this._stop, tabIndex: -1, ariaLabel: decrementButtonAriaLabel, "data-is-focusable": false }, iconButtonProps))))); }),
            labelPosition === _utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["Position"].bottom && (iconProps || label) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.labelWrapper },
                iconProps && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_4__["Icon"], { iconName: iconProps.iconName, className: classNames.icon, "aria-hidden": "true" }),
                label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], { id: this._labelId, htmlFor: this._inputId, className: classNames.label, disabled: disabled }, label))))));
    };
    SpinButton.prototype.focus = function () {
        if (this._input.current) {
            this._input.current.focus();
        }
    };
    Object.defineProperty(SpinButton.prototype, "value", {
        /**
         * Gets the value of the spin button.
         */
        get: function () {
            return this.props.value === undefined ? this.state.value : this.props.value;
        },
        enumerable: true,
        configurable: true
    });
    SpinButton.prototype._onChange = function () {
        /**
         * A noop input change handler. Using onInput instead of onChange was meant to address an issue
         * which apparently has been resolved in React 16 (https://github.com/facebook/react/issues/7027).
         * The no-op onChange handler was still needed because React gives console errors if an input
         * doesn't have onChange.
         *
         * TODO (Fabric 8?) - switch to just calling onChange (this is a breaking change for any tests,
         * ours or 3rd-party, which simulate entering text in a SpinButton)
         */
    };
    SpinButton.defaultProps = {
        step: 1,
        min: 0,
        max: 100,
        disabled: false,
        labelPosition: _utilities_positioning__WEBPACK_IMPORTED_MODULE_6__["Position"].start,
        label: '',
        incrementButtonIcon: { iconName: 'ChevronUpSmall' },
        decrementButtonIcon: { iconName: 'ChevronDownSmall' }
    };
    SpinButton = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_5__["customizable"])('SpinButton', ['theme', 'styles'], true)
    ], SpinButton);
    return SpinButton;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/SpinButton/SpinButton.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getArrowButtonStyles", function() { return getArrowButtonStyles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var ARROW_BUTTON_WIDTH = 23;
var ARROW_BUTTON_ICON_SIZE = 8;
var DEFAULT_HEIGHT = 32;
var DEFAULT_MIN_WIDTH = 86;
var LABEL_MARGIN = 10;
var _getDisabledStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme) {
    var _a;
    var semanticColors = theme.semanticColors;
    var SpinButtonTextColorDisabled = semanticColors.disabledText;
    var SpinButtonBackgroundColorDisabled = semanticColors.disabledBackground;
    return {
        backgroundColor: SpinButtonBackgroundColorDisabled,
        borderColor: 'transparent',
        pointerEvents: 'none',
        cursor: 'default',
        color: SpinButtonTextColorDisabled,
        selectors: (_a = {},
            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                color: 'GrayText'
            },
            _a)
    };
});
var getArrowButtonStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, isUpArrow, customSpecificArrowStyles) {
    var _a, _b, _c;
    var palette = theme.palette, effects = theme.effects;
    // TODO: after updating the semanticColor slots all this need to be reevaluated.
    var ArrowButtonTextColor = palette.neutralSecondary;
    var ArrowButtonTextColorHovered = palette.neutralPrimary;
    var ArrowButtonTextColorPressed = palette.neutralPrimary;
    var ArrowButtonBackgroundHovered = palette.neutralLighter;
    var ArrowButtonBackgroundPressed = palette.neutralLight;
    var defaultArrowButtonStyles = {
        root: {
            outline: 'none',
            display: 'block',
            height: '50%',
            width: ARROW_BUTTON_WIDTH,
            padding: 0,
            backgroundColor: 'transparent',
            textAlign: 'center',
            cursor: 'default',
            color: ArrowButtonTextColor,
            selectors: {
                '&.ms-DownButton': {
                    borderRadius: "0 0 " + effects.roundedCorner2 + " 0"
                },
                '&.ms-UpButton': {
                    borderRadius: "0 " + effects.roundedCorner2 + " 0 0"
                }
            }
        },
        rootHovered: {
            backgroundColor: ArrowButtonBackgroundHovered,
            color: ArrowButtonTextColorHovered
        },
        rootChecked: {
            backgroundColor: ArrowButtonBackgroundPressed,
            color: ArrowButtonTextColorPressed,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'Highlight',
                    color: 'HighlightText'
                },
                _a)
        },
        rootPressed: {
            backgroundColor: ArrowButtonBackgroundPressed,
            color: ArrowButtonTextColorPressed,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'Highlight',
                    color: 'HighlightText'
                },
                _b)
        },
        rootDisabled: {
            opacity: 0.5,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText',
                    opacity: 1
                },
                _c)
        },
        icon: {
            fontSize: ARROW_BUTTON_ICON_SIZE,
            marginTop: 0,
            marginRight: 0,
            marginBottom: 0,
            marginLeft: 0
        }
    };
    // No specific styles needed as of now.
    var defaultUpArrowButtonStyles = {};
    var defaultDownArrowButtonStyles = {};
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(defaultArrowButtonStyles, isUpArrow ? defaultUpArrowButtonStyles : defaultDownArrowButtonStyles, customSpecificArrowStyles);
});
var getStyles = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["memoizeFunction"])(function (theme, customStyles) {
    var _a, _b, _c;
    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var SpinButtonRootBorderColor = semanticColors.inputBorder;
    var SpinButtonRootBorderColorHovered = semanticColors.inputBorderHovered;
    var SpinButtonRootBorderColorFocused = semanticColors.inputFocusBorderAlt;
    var SpinButtonInputTextColor = semanticColors.bodyText;
    var SpinButtonInputTextColorSelected = palette.white;
    var SpinButtonInputBackgroundColorSelected = palette.themePrimary;
    var SpinButtonIconDisabledColor = semanticColors.disabledText;
    var defaultStyles = {
        root: {
            outline: 'none',
            fontSize: fonts.medium.fontSize,
            width: '100%',
            minWidth: DEFAULT_MIN_WIDTH
        },
        labelWrapper: {
            display: 'inline-flex',
            alignItems: 'center'
        },
        labelWrapperStart: {
            height: DEFAULT_HEIGHT,
            float: 'left',
            marginRight: LABEL_MARGIN
        },
        labelWrapperEnd: {
            height: DEFAULT_HEIGHT,
            float: 'right',
            marginLeft: LABEL_MARGIN
        },
        labelWrapperTop: {
            // Due to the lineHeight set on the label (below), the height of the wrapper (contains icon+label)
            // ends up 1px taller than a standard label height, causing the vertical alignment to be off when
            // the SpinButton is displayed with the label on top next to other form fields.
            // Decrease the wrapper's effective height slightly to compensate.
            marginBottom: -1
        },
        labelWrapperBottom: {},
        icon: {
            padding: '0 5px',
            fontSize: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].large
        },
        iconDisabled: {
            color: SpinButtonIconDisabledColor
        },
        label: {
            pointerEvents: 'none',
            // centering the label with the icon by forcing the exact same height as the icon.
            lineHeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].large
        },
        labelDisabled: {},
        spinButtonWrapper: {
            display: 'flex',
            boxSizing: 'border-box',
            height: DEFAULT_HEIGHT,
            minWidth: DEFAULT_MIN_WIDTH,
            border: "1px solid " + SpinButtonRootBorderColor,
            borderRadius: effects.roundedCorner2
        },
        spinButtonWrapperTopBottom: {
            width: '100%'
        },
        spinButtonWrapperHovered: {
            borderColor: SpinButtonRootBorderColorHovered,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight'
                },
                _a)
        },
        spinButtonWrapperFocused: {
            borderColor: SpinButtonRootBorderColorFocused,
            selectors: (_b = {},
                _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    borderColor: 'Highlight'
                },
                _b)
        },
        spinButtonWrapperDisabled: _getDisabledStyles(theme),
        input: {
            boxSizing: 'border-box',
            boxShadow: 'none',
            borderStyle: 'none',
            flex: 1,
            margin: 0,
            fontSize: fonts.medium.fontSize,
            color: SpinButtonInputTextColor,
            height: '100%',
            padding: '0 8px',
            outline: 0,
            display: 'block',
            minWidth: DEFAULT_MIN_WIDTH - ARROW_BUTTON_WIDTH - 2,
            whiteSpace: 'nowrap',
            textOverflow: 'ellipsis',
            overflow: 'hidden',
            cursor: 'text',
            userSelect: 'text',
            borderRadius: effects.roundedCorner2 + " 0 0 " + effects.roundedCorner2
        },
        inputTextSelected: {
            backgroundColor: SpinButtonInputBackgroundColorSelected,
            color: SpinButtonInputTextColorSelected,
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    backgroundColor: 'Highlight',
                    borderColor: 'Highlight',
                    color: 'HighlightText'
                },
                _c)
        },
        inputDisabled: _getDisabledStyles(theme),
        arrowButtonsContainer: {
            display: 'block',
            height: '100%',
            cursor: 'default'
        },
        arrowButtonsContainerDisabled: _getDisabledStyles(theme)
    };
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"])(defaultStyles, customStyles);
});


/***/ }),

/***/ "./lib/components/SpinButton/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SpinButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SpinButton/SpinButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardSpinDirection", function() { return _SpinButton__WEBPACK_IMPORTED_MODULE_0__["KeyboardSpinDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinButton", function() { return _SpinButton__WEBPACK_IMPORTED_MODULE_0__["SpinButton"]; });




/***/ }),

/***/ "./lib/components/Spinner/Spinner.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpinnerBase", function() { return SpinnerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Spinner_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Spinner/Spinner.types.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var SpinnerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SpinnerBase, _super);
    function SpinnerBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    SpinnerBase.prototype.render = function () {
        var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;
        var statusMessage = ariaLabel;
        var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"], ['size']);
        // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the ISpinnerStyleProps,
        // we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType finally goes away we should delete this.
        var styleSize = size;
        if (styleSize === undefined && type !== undefined) {
            styleSize = type === _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerType"].large ? _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerSize"].large : _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerSize"].medium;
        }
        var classNames = getClassNames(styles, {
            theme: theme,
            size: styleSize,
            className: className,
            labelPosition: labelPosition
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps, { className: classNames.root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.circle }),
            label && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.label }, label),
            statusMessage && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "status", "aria-live": ariaLive },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Utilities__WEBPACK_IMPORTED_MODULE_3__["DelayedRender"], null,
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.screenReaderText }, statusMessage))))));
    };
    SpinnerBase.defaultProps = {
        size: _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerSize"].medium,
        ariaLive: 'polite',
        labelPosition: 'bottom'
    };
    return SpinnerBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_3__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Spinner/Spinner.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return Spinner; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Spinner_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Spinner/Spinner.base.js");
/* harmony import */ var _Spinner_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Spinner/Spinner.styles.js");



var Spinner = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Spinner_base__WEBPACK_IMPORTED_MODULE_1__["SpinnerBase"], _Spinner_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'Spinner' });


/***/ }),

/***/ "./lib/components/Spinner/Spinner.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Spinner_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Spinner/Spinner.types.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var GlobalClassNames = {
    root: 'ms-Spinner',
    circle: 'ms-Spinner-circle',
    label: 'ms-Spinner-label'
};
var spinAnimation = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["keyframes"])({
    '0%': {
        transform: 'rotate(0deg)'
    },
    '100%': {
        transform: 'rotate(360deg)'
    }
});
var getStyles = function (props) {
    var _a;
    var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;
    var palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                display: 'flex',
                flexDirection: 'column',
                alignItems: 'center',
                justifyContent: 'center'
            },
            labelPosition === 'top' && {
                flexDirection: 'column-reverse'
            },
            labelPosition === 'right' && {
                flexDirection: 'row'
            },
            labelPosition === 'left' && {
                flexDirection: 'row-reverse'
            },
            className
        ],
        circle: [
            classNames.circle,
            {
                boxSizing: 'border-box',
                borderRadius: '50%',
                border: '1.5px solid ' + palette.themeLight,
                borderTopColor: palette.themePrimary,
                animationName: spinAnimation,
                animationDuration: '1.3s',
                animationIterationCount: 'infinite',
                animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                        borderTopColor: 'Highlight'
                    },
                    _a)
            },
            size === _Spinner_types__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"].xSmall && [
                'ms-Spinner--xSmall',
                {
                    width: 12,
                    height: 12
                }
            ],
            size === _Spinner_types__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"].small && [
                'ms-Spinner--small',
                {
                    width: 16,
                    height: 16
                }
            ],
            size === _Spinner_types__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"].medium && [
                'ms-Spinner--medium',
                {
                    width: 20,
                    height: 20
                }
            ],
            size === _Spinner_types__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"].large && [
                'ms-Spinner--large',
                {
                    width: 28,
                    height: 28
                }
            ]
        ],
        label: [
            classNames.label,
            theme.fonts.small,
            {
                color: palette.themePrimary,
                margin: '8px 0 0',
                textAlign: 'center'
            },
            labelPosition === 'top' && {
                margin: '0 0 8px'
            },
            labelPosition === 'right' && {
                margin: '0 0 0 8px'
            },
            labelPosition === 'left' && {
                margin: '0 8px 0 0'
            }
        ],
        screenReaderText: _Styling__WEBPACK_IMPORTED_MODULE_1__["hiddenContentStyle"]
    };
};


/***/ }),

/***/ "./lib/components/Spinner/Spinner.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpinnerSize", function() { return SpinnerSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpinnerType", function() { return SpinnerType; });
/**
 * Possible variations of the spinner circle size.
 * {@docCategory Spinner}
 */
var SpinnerSize;
(function (SpinnerSize) {
    /**
     * 12px Spinner diameter
     */
    SpinnerSize[SpinnerSize["xSmall"] = 0] = "xSmall";
    /**
     * 16px Spinner diameter
     */
    SpinnerSize[SpinnerSize["small"] = 1] = "small";
    /**
     * 20px Spinner diameter
     */
    SpinnerSize[SpinnerSize["medium"] = 2] = "medium";
    /**
     * 28px Spinner diameter
     */
    SpinnerSize[SpinnerSize["large"] = 3] = "large";
})(SpinnerSize || (SpinnerSize = {}));
/**
 * Deprecated at v2.0.0, use `SpinnerSize` instead.
 * @deprecated Use `SpinnerSize` instead.
 * {@docCategory Spinner}
 */
var SpinnerType;
(function (SpinnerType) {
    /**
     * Deprecated and will be removed at \>= 2.0.0. Use `SpinnerSize.medium` instead.
     * @deprecated Use `SpinnerSize.medium` instead.
     */
    SpinnerType[SpinnerType["normal"] = 0] = "normal";
    /**
     * Deprecated and will be removed at \>= 2.0.0. Use `SpinnerSize.large` instead.
     * @deprecated Use `SpinnerSize.large` instead.
     */
    SpinnerType[SpinnerType["large"] = 1] = "large";
})(SpinnerType || (SpinnerType = {}));


/***/ }),

/***/ "./lib/components/Spinner/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Spinner/Spinner.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _Spinner__WEBPACK_IMPORTED_MODULE_0__["Spinner"]; });

/* harmony import */ var _Spinner_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Spinner/Spinner.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerBase", function() { return _Spinner_base__WEBPACK_IMPORTED_MODULE_1__["SpinnerBase"]; });

/* harmony import */ var _Spinner_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Spinner/Spinner.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerSize", function() { return _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerType", function() { return _Spinner_types__WEBPACK_IMPORTED_MODULE_2__["SpinnerType"]; });






/***/ }),

/***/ "./lib/components/Stack/Stack.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Stack", function() { return Stack; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Foundation.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Stack_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Stack/Stack.styles.js");
/* harmony import */ var _StackItem_StackItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Stack/StackItem/StackItem.js");

/** @jsx withSlots */





var StackView = function (props) {
    var _a = props.as, RootType = _a === void 0 ? 'div' : _a, disableShrink = props.disableShrink, wrap = props.wrap, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](props, ["as", "disableShrink", "wrap"]);
    Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["warnDeprecations"])('Stack', props, {
        gap: 'tokens.childrenGap',
        maxHeight: 'tokens.maxHeight',
        maxWidth: 'tokens.maxWidth',
        padding: 'tokens.padding'
    });
    var stackChildren = react__WEBPACK_IMPORTED_MODULE_1__["Children"].map(props.children, function (child, index) {
        if (!child) {
            return null;
        }
        if (_isStackItem(child)) {
            var defaultItemProps = {
                shrink: !disableShrink
            };
            return react__WEBPACK_IMPORTED_MODULE_1__["cloneElement"](child, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, defaultItemProps, child.props));
        }
        return child;
    });
    var nativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(rest, _Utilities__WEBPACK_IMPORTED_MODULE_3__["htmlElementProperties"]);
    var Slots = Object(_Foundation__WEBPACK_IMPORTED_MODULE_2__["getSlots"])(props, {
        root: RootType,
        inner: 'div'
    });
    if (wrap) {
        return (Object(_Foundation__WEBPACK_IMPORTED_MODULE_2__["withSlots"])(Slots.root, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps),
            Object(_Foundation__WEBPACK_IMPORTED_MODULE_2__["withSlots"])(Slots.inner, null, stackChildren)));
    }
    return Object(_Foundation__WEBPACK_IMPORTED_MODULE_2__["withSlots"])(Slots.root, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, nativeProps), stackChildren);
};
function _isStackItem(item) {
    // In theory, we should be able to just check item.type === StackItem.
    // However, under certain unclear circumstances (see https://github.com/OfficeDev/office-ui-fabric-react/issues/10785),
    // the object identity is different despite the function implementation being the same.
    return (!!item &&
        typeof item === 'object' &&
        !!item.type &&
        // StackItem is generated by createComponent, so we need to check its displayName instead of name
        item.type.displayName === _StackItem_StackItem__WEBPACK_IMPORTED_MODULE_5__["StackItem"].displayName);
}
var StackStatics = {
    Item: _StackItem_StackItem__WEBPACK_IMPORTED_MODULE_5__["StackItem"]
};
var Stack = Object(_Foundation__WEBPACK_IMPORTED_MODULE_2__["createComponent"])(StackView, {
    displayName: 'Stack',
    styles: _Stack_styles__WEBPACK_IMPORTED_MODULE_4__["styles"],
    statics: StackStatics
});
/* harmony default export */ __webpack_exports__["default"] = (Stack);


/***/ }),

/***/ "./lib/components/Stack/Stack.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _StackUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Stack/StackUtils.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Styling.js");



var nameMap = {
    start: 'flex-start',
    end: 'flex-end'
};
var GlobalClassNames = {
    root: 'ms-Stack',
    inner: 'ms-Stack-inner'
};
var styles = function (props, theme, tokens) {
    var _a, _b, _c, _d, _e, _f, _g;
    var verticalFill = props.verticalFill, horizontal = props.horizontal, reversed = props.reversed, gap = props.gap, grow = props.grow, wrap = props.wrap, horizontalAlign = props.horizontalAlign, verticalAlign = props.verticalAlign, disableShrink = props.disableShrink, className = props.className;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["getGlobalClassNames"])(GlobalClassNames, theme);
    var childrenGap = tokens && tokens.childrenGap ? tokens.childrenGap : gap;
    var maxHeight = tokens && tokens.maxHeight ? tokens.maxHeight : props.maxHeight;
    var maxWidth = tokens && tokens.maxWidth ? tokens.maxWidth : props.maxWidth;
    var padding = tokens && tokens.padding ? tokens.padding : props.padding;
    var _h = Object(_StackUtils__WEBPACK_IMPORTED_MODULE_1__["parseGap"])(childrenGap, theme), rowGap = _h.rowGap, columnGap = _h.columnGap;
    var horizontalMargin = "" + -0.5 * columnGap.value + columnGap.unit;
    var verticalMargin = "" + -0.5 * rowGap.value + rowGap.unit;
    // styles to be applied to all direct children regardless of wrap or direction
    var childStyles = {
        textOverflow: 'ellipsis'
    };
    // selectors to be applied regardless of wrap or direction
    var commonSelectors = {
        // flexShrink styles are applied by the StackItem
        '> *:not(.ms-StackItem)': {
            flexShrink: disableShrink ? 0 : 1
        }
    };
    if (wrap) {
        return {
            root: [
                classNames.root,
                {
                    flexWrap: 'wrap',
                    maxWidth: maxWidth,
                    maxHeight: maxHeight,
                    width: 'auto',
                    overflow: 'visible',
                    height: '100%'
                },
                horizontalAlign && (_a = {},
                    _a[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,
                    _a),
                verticalAlign && (_b = {},
                    _b[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,
                    _b),
                className,
                {
                    // not allowed to be overridden by className
                    // since this is necessary in order to prevent collapsing margins
                    display: 'flex'
                },
                horizontal && {
                    height: verticalFill ? '100%' : 'auto'
                }
            ],
            inner: [
                classNames.inner,
                {
                    display: 'flex',
                    flexWrap: 'wrap',
                    marginLeft: horizontalMargin,
                    marginRight: horizontalMargin,
                    marginTop: verticalMargin,
                    marginBottom: verticalMargin,
                    overflow: 'visible',
                    boxSizing: 'border-box',
                    padding: Object(_StackUtils__WEBPACK_IMPORTED_MODULE_1__["parsePadding"])(padding, theme),
                    // avoid unnecessary calc() calls if horizontal gap is 0
                    width: columnGap.value === 0 ? '100%' : "calc(100% + " + columnGap.value + columnGap.unit + ")",
                    maxWidth: '100vw',
                    selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ '> *': tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ margin: "" + 0.5 * rowGap.value + rowGap.unit + " " + 0.5 * columnGap.value + columnGap.unit }, childStyles) }, commonSelectors)
                },
                horizontalAlign && (_c = {},
                    _c[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,
                    _c),
                verticalAlign && (_d = {},
                    _d[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,
                    _d),
                horizontal && {
                    flexDirection: reversed ? 'row-reverse' : 'row',
                    // avoid unnecessary calc() calls if vertical gap is 0
                    height: rowGap.value === 0 ? '100%' : "calc(100% + " + rowGap.value + rowGap.unit + ")",
                    selectors: {
                        '> *': {
                            maxWidth: columnGap.value === 0 ? '100%' : "calc(100% - " + columnGap.value + columnGap.unit + ")"
                        }
                    }
                },
                !horizontal && {
                    flexDirection: reversed ? 'column-reverse' : 'column',
                    height: "calc(100% + " + rowGap.value + rowGap.unit + ")",
                    selectors: {
                        '> *': {
                            maxHeight: rowGap.value === 0 ? '100%' : "calc(100% - " + rowGap.value + rowGap.unit + ")"
                        }
                    }
                }
            ]
        };
    }
    return {
        root: [
            classNames.root,
            {
                display: 'flex',
                flexDirection: horizontal ? (reversed ? 'row-reverse' : 'row') : reversed ? 'column-reverse' : 'column',
                flexWrap: 'nowrap',
                width: 'auto',
                height: verticalFill ? '100%' : 'auto',
                maxWidth: maxWidth,
                maxHeight: maxHeight,
                padding: Object(_StackUtils__WEBPACK_IMPORTED_MODULE_1__["parsePadding"])(padding, theme),
                boxSizing: 'border-box',
                selectors: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]((_e = { '> *': childStyles }, _e[reversed ? '> *:not(:last-child)' : '> *:not(:first-child)'] = [
                    horizontal && {
                        marginLeft: "" + columnGap.value + columnGap.unit
                    },
                    !horizontal && {
                        marginTop: "" + rowGap.value + rowGap.unit
                    }
                ], _e), commonSelectors)
            },
            grow && {
                flexGrow: grow === true ? 1 : grow
            },
            horizontalAlign && (_f = {},
                _f[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,
                _f),
            verticalAlign && (_g = {},
                _g[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,
                _g),
            className
        ]
        // TODO: this cast may be hiding some potential issues with styling and name
        //        lookups and should be removed
    };
};


/***/ }),

/***/ "./lib/components/Stack/StackItem/StackItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StackItem", function() { return StackItem; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Foundation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Foundation.js");
/* harmony import */ var _StackItem_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Stack/StackItem/StackItem.styles.js");
/** @jsx withSlots */



var StackItemView = function (props) {
    var children = props.children;
    if (react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(children) < 1) {
        return null;
    }
    var Slots = Object(_Foundation__WEBPACK_IMPORTED_MODULE_1__["getSlots"])(props, {
        root: 'div'
    });
    return Object(_Foundation__WEBPACK_IMPORTED_MODULE_1__["withSlots"])(Slots.root, null, children);
};
var StackItem = Object(_Foundation__WEBPACK_IMPORTED_MODULE_1__["createComponent"])(StackItemView, {
    displayName: 'StackItem',
    styles: _StackItem_styles__WEBPACK_IMPORTED_MODULE_2__["StackItemStyles"]
});
/* harmony default export */ __webpack_exports__["default"] = (StackItem);


/***/ }),

/***/ "./lib/components/Stack/StackItem/StackItem.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StackItemStyles", function() { return StackItemStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-StackItem'
};
var alignMap = {
    start: 'flex-start',
    end: 'flex-end'
};
var StackItemStyles = function (props, theme, tokens) {
    var grow = props.grow, shrink = props.shrink, disableShrink = props.disableShrink, align = props.align, verticalFill = props.verticalFill, order = props.order, className = props.className;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            theme.fonts.medium,
            classNames.root,
            {
                margin: tokens.margin,
                height: verticalFill ? '100%' : 'auto',
                width: 'auto'
            },
            grow && { flexGrow: grow === true ? 1 : grow },
            (disableShrink || (!grow && !shrink)) && {
                flexShrink: 0
            },
            shrink &&
                !disableShrink && {
                flexShrink: 1
            },
            align && {
                alignSelf: alignMap[align] || align
            },
            order && {
                order: order
            },
            className
        ]
        // TODO: this cast may be hiding some potential issues with styling and name
        //        lookups and should be removed
    };
};


/***/ }),

/***/ "./lib/components/Stack/StackUtils.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseGap", function() { return parseGap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parsePadding", function() { return parsePadding; });
/**
 * Functions used by Stack components to simplify style-related computations
 */
// Helper function that converts a themed spacing key (if given) to the corresponding themed spacing value.
var _getThemedSpacing = function (space, theme) {
    if (theme.spacing.hasOwnProperty(space)) {
        return theme.spacing[space];
    }
    return space;
};
// Helper function that takes a gap as a string and converts it into a { value, unit } representation.
var _getValueUnitGap = function (gap) {
    var numericalPart = parseFloat(gap);
    var numericalValue = isNaN(numericalPart) ? 0 : numericalPart;
    var numericalString = isNaN(numericalPart) ? '' : numericalPart.toString();
    var unitPart = gap.substring(numericalString.toString().length);
    return {
        value: numericalValue,
        unit: unitPart || 'px'
    };
};
/**
 * Takes in a gap size in either a CSS-style format (e.g. 10 or "10px")
 *  or a key of a themed spacing value (e.g. "s1").
 * Returns the separate numerical value of the padding (e.g. 10)
 *  and the CSS unit (e.g. "px").
 */
var parseGap = function (gap, theme) {
    if (gap === undefined || gap === '') {
        return {
            rowGap: {
                value: 0,
                unit: 'px'
            },
            columnGap: {
                value: 0,
                unit: 'px'
            }
        };
    }
    if (typeof gap === 'number') {
        return {
            rowGap: {
                value: gap,
                unit: 'px'
            },
            columnGap: {
                value: gap,
                unit: 'px'
            }
        };
    }
    var splitGap = gap.split(' ');
    // If the array has more than two values, then return 0px.
    if (splitGap.length > 2) {
        return {
            rowGap: {
                value: 0,
                unit: 'px'
            },
            columnGap: {
                value: 0,
                unit: 'px'
            }
        };
    }
    // If the array has two values, then parse each one.
    if (splitGap.length === 2) {
        return {
            rowGap: _getValueUnitGap(_getThemedSpacing(splitGap[0], theme)),
            columnGap: _getValueUnitGap(_getThemedSpacing(splitGap[1], theme))
        };
    }
    // Else, parse the numerical value and pass it as both the vertical and horizontal gap.
    var calculatedGap = _getValueUnitGap(_getThemedSpacing(gap, theme));
    return {
        rowGap: calculatedGap,
        columnGap: calculatedGap
    };
};
/**
 * Takes in a padding in a CSS-style format (e.g. 10, "10px", "10px 10px", etc.)
 *  where the separate padding values can also be the key of a themed spacing value
 *  (e.g. "s1 m", "10px l1 20px l2", etc.).
 * Returns a CSS-style padding.
 */
var parsePadding = function (padding, theme) {
    if (padding === undefined || typeof padding === 'number' || padding === '') {
        return padding;
    }
    var paddingValues = padding.split(' ');
    if (paddingValues.length < 2) {
        return _getThemedSpacing(padding, theme);
    }
    return paddingValues.reduce(function (padding1, padding2) {
        return _getThemedSpacing(padding1, theme) + ' ' + _getThemedSpacing(padding2, theme);
    });
};


/***/ }),

/***/ "./lib/components/Stack/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _StackItem_StackItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Stack/StackItem/StackItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackItem", function() { return _StackItem_StackItem__WEBPACK_IMPORTED_MODULE_0__["StackItem"]; });

/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Stack/Stack.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stack", function() { return _Stack__WEBPACK_IMPORTED_MODULE_1__["Stack"]; });





/***/ }),

/***/ "./lib/components/Sticky/Sticky.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Sticky", function() { return Sticky; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ScrollablePane_ScrollablePane_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/ScrollablePane/ScrollablePane.types.js");
/* harmony import */ var _Sticky_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Sticky/Sticky.types.js");





var Sticky = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Sticky, _super);
    function Sticky(props) {
        var _this = _super.call(this, props) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._stickyContentTop = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._stickyContentBottom = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._nonStickyContent = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._placeHolder = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.syncScroll = function (container) {
            var nonStickyContent = _this.nonStickyContent;
            if (nonStickyContent && _this.props.isScrollSynced) {
                nonStickyContent.scrollLeft = container.scrollLeft;
            }
        };
        _this._getContext = function () { return _this.context; };
        _this._onScrollEvent = function (container, footerStickyContainer) {
            if (_this.root && _this.nonStickyContent) {
                var distanceFromTop = _this._getNonStickyDistanceFromTop(container);
                var isStickyTop = false;
                var isStickyBottom = false;
                if (_this.canStickyTop) {
                    var distanceToStickTop = distanceFromTop - _this._getStickyDistanceFromTop();
                    isStickyTop = distanceToStickTop < container.scrollTop;
                }
                // Can sticky bottom if the scrollablePane - total sticky footer height is smaller than the sticky's distance from the top of the pane
                if (_this.canStickyBottom && container.clientHeight - footerStickyContainer.offsetHeight <= distanceFromTop) {
                    isStickyBottom =
                        distanceFromTop - Math.floor(container.scrollTop) >= _this._getStickyDistanceFromTopForFooter(container, footerStickyContainer);
                }
                if (document.activeElement &&
                    _this.nonStickyContent.contains(document.activeElement) &&
                    (_this.state.isStickyTop !== isStickyTop || _this.state.isStickyBottom !== isStickyBottom)) {
                    _this._activeElement = document.activeElement;
                }
                else {
                    _this._activeElement = undefined;
                }
                _this.setState({
                    isStickyTop: _this.canStickyTop && isStickyTop,
                    isStickyBottom: isStickyBottom,
                    distanceFromTop: distanceFromTop
                });
            }
        };
        _this._getStickyDistanceFromTop = function () {
            var distance = 0;
            if (_this.stickyContentTop) {
                distance = _this.stickyContentTop.offsetTop;
            }
            return distance;
        };
        _this._getStickyDistanceFromTopForFooter = function (container, footerStickyVisibleContainer) {
            var distance = 0;
            if (_this.stickyContentBottom) {
                distance = container.clientHeight - footerStickyVisibleContainer.offsetHeight + _this.stickyContentBottom.offsetTop;
            }
            return distance;
        };
        _this._getNonStickyDistanceFromTop = function (container) {
            var distance = 0;
            var currElem = _this.root;
            if (currElem) {
                while (currElem && currElem.offsetParent !== container) {
                    distance += currElem.offsetTop;
                    currElem = currElem.offsetParent;
                }
                if (currElem && currElem.offsetParent === container) {
                    distance += currElem.offsetTop;
                }
            }
            return distance;
        };
        _this.state = {
            isStickyTop: false,
            isStickyBottom: false,
            distanceFromTop: undefined
        };
        _this._activeElement = undefined;
        return _this;
    }
    Object.defineProperty(Sticky.prototype, "root", {
        get: function () {
            return this._root.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "placeholder", {
        get: function () {
            return this._placeHolder.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "stickyContentTop", {
        get: function () {
            return this._stickyContentTop.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "stickyContentBottom", {
        get: function () {
            return this._stickyContentBottom.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "nonStickyContent", {
        get: function () {
            return this._nonStickyContent.current;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "canStickyTop", {
        get: function () {
            return this.props.stickyPosition === _Sticky_types__WEBPACK_IMPORTED_MODULE_4__["StickyPositionType"].Both || this.props.stickyPosition === _Sticky_types__WEBPACK_IMPORTED_MODULE_4__["StickyPositionType"].Header;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Sticky.prototype, "canStickyBottom", {
        get: function () {
            return this.props.stickyPosition === _Sticky_types__WEBPACK_IMPORTED_MODULE_4__["StickyPositionType"].Both || this.props.stickyPosition === _Sticky_types__WEBPACK_IMPORTED_MODULE_4__["StickyPositionType"].Footer;
        },
        enumerable: true,
        configurable: true
    });
    Sticky.prototype.componentDidMount = function () {
        var scrollablePane = this._getContext().scrollablePane;
        if (!scrollablePane) {
            return;
        }
        scrollablePane.subscribe(this._onScrollEvent);
        scrollablePane.addSticky(this);
    };
    Sticky.prototype.componentWillUnmount = function () {
        var scrollablePane = this._getContext().scrollablePane;
        if (!scrollablePane) {
            return;
        }
        scrollablePane.unsubscribe(this._onScrollEvent);
        scrollablePane.removeSticky(this);
    };
    Sticky.prototype.componentDidUpdate = function (prevProps, prevState) {
        var scrollablePane = this._getContext().scrollablePane;
        if (!scrollablePane) {
            return;
        }
        var _a = this.state, isStickyBottom = _a.isStickyBottom, isStickyTop = _a.isStickyTop, distanceFromTop = _a.distanceFromTop;
        var syncScroll = false;
        if (prevState.distanceFromTop !== distanceFromTop) {
            scrollablePane.sortSticky(this, true /*sortAgain*/);
            syncScroll = true;
        }
        if (prevState.isStickyTop !== isStickyTop || prevState.isStickyBottom !== isStickyBottom) {
            if (this._activeElement) {
                this._activeElement.focus();
            }
            scrollablePane.updateStickyRefHeights();
            syncScroll = true;
        }
        if (syncScroll) {
            // Sync Sticky scroll position with content container on each update
            scrollablePane.syncScrollSticky(this);
        }
    };
    Sticky.prototype.shouldComponentUpdate = function (nextProps, nextState) {
        if (!this.context.scrollablePane) {
            return true;
        }
        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom, distanceFromTop = _a.distanceFromTop;
        return (isStickyTop !== nextState.isStickyTop ||
            isStickyBottom !== nextState.isStickyBottom ||
            this.props.stickyPosition !== nextProps.stickyPosition ||
            this.props.children !== nextProps.children ||
            distanceFromTop !== nextState.distanceFromTop ||
            _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentTop) ||
            _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentBottom) ||
            _isOffsetHeightDifferent(this._nonStickyContent, this._placeHolder));
    };
    Sticky.prototype.render = function () {
        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;
        var _b = this.props, stickyClassName = _b.stickyClassName, children = _b.children;
        if (!this.context.scrollablePane) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null, this.props.children);
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._root },
            this.canStickyTop && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._stickyContentTop, "aria-hidden": !isStickyTop, style: { pointerEvents: isStickyTop ? 'auto' : 'none' } },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: this._getStickyPlaceholderHeight(isStickyTop) }))),
            this.canStickyBottom && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._stickyContentBottom, "aria-hidden": !isStickyBottom, style: { pointerEvents: isStickyBottom ? 'auto' : 'none' } },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: this._getStickyPlaceholderHeight(isStickyBottom) }))),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { style: this._getNonStickyPlaceholderHeightAndWidth(), ref: this._placeHolder },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._nonStickyContent, className: isStickyTop || isStickyBottom ? stickyClassName : undefined, style: this._getContentStyles(isStickyTop || isStickyBottom) }, children))));
    };
    Sticky.prototype.addSticky = function (stickyContent) {
        if (this.nonStickyContent) {
            stickyContent.appendChild(this.nonStickyContent);
        }
    };
    Sticky.prototype.resetSticky = function () {
        if (this.nonStickyContent && this.placeholder) {
            this.placeholder.appendChild(this.nonStickyContent);
        }
    };
    Sticky.prototype.setDistanceFromTop = function (container) {
        var distanceFromTop = this._getNonStickyDistanceFromTop(container);
        this.setState({ distanceFromTop: distanceFromTop });
    };
    Sticky.prototype._getContentStyles = function (isSticky) {
        return {
            backgroundColor: this.props.stickyBackgroundColor || this._getBackground(),
            overflow: isSticky ? 'hidden' : ''
        };
    };
    Sticky.prototype._getStickyPlaceholderHeight = function (isSticky) {
        var height = this.nonStickyContent ? this.nonStickyContent.offsetHeight : 0;
        return {
            visibility: isSticky ? 'hidden' : 'visible',
            height: isSticky ? 0 : height
        };
    };
    Sticky.prototype._getNonStickyPlaceholderHeightAndWidth = function () {
        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;
        if (isStickyTop || isStickyBottom) {
            var height = 0, width = 0;
            // Why is placeHolder width needed?
            // ScrollablePane content--container is reponsible for providing scrollbars depending on content overflow.
            // If the overflow is caused by content of sticky component when it is in non-sticky state,
            // ScrollablePane content--conatiner will provide horizontal scrollbar.
            // If the component becomes sticky, i.e., when state.isStickyTop || state.isStickyBottom becomes true,
            // it's actual content is no more inside ScrollablePane content--container.
            // ScrollablePane content--conatiner will see no need for horizontal scrollbar. (Assuming no other content is causing overflow)
            // The complete content of sticky component will not be viewable.
            // It is necessary to provide a placeHolder of a certain width (height is already being set) in the content--container,
            // to get a horizontal scrollbar & be able to view the complete content of sticky component.
            if (this.nonStickyContent && this.nonStickyContent.firstElementChild) {
                height = this.nonStickyContent.offsetHeight;
                // What value should be substituted for placeHolder width?
                // Assumption:
                //    1. Content inside <Sticky> should always be wrapped in a single div.
                //        <Sticky><div id={'firstElementChild'}>{intended_content}</div><Sticky/>
                //    2. -ve padding, margin, etc. are not be used.
                //    3. scrollWidth of a parent is greater than or equal to max of scrollWidths of it's children and same holds for children.
                // placeHolder width should be computed in the best possible way to prevent overscroll/underscroll.
                width =
                    this.nonStickyContent.firstElementChild.scrollWidth +
                        (this.nonStickyContent.firstElementChild.offsetWidth - this.nonStickyContent.firstElementChild.clientWidth);
            }
            return {
                height: height,
                width: width
            };
        }
        else {
            return {};
        }
    };
    // Gets background of nearest parent element that has a declared background-color attribute
    Sticky.prototype._getBackground = function () {
        if (!this.root) {
            return undefined;
        }
        var curr = this.root;
        while (window.getComputedStyle(curr).getPropertyValue('background-color') === 'rgba(0, 0, 0, 0)' ||
            window.getComputedStyle(curr).getPropertyValue('background-color') === 'transparent') {
            if (curr.tagName === 'HTML') {
                // Fallback color if no element has a declared background-color attribute
                return undefined;
            }
            if (curr.parentElement) {
                curr = curr.parentElement;
            }
        }
        return window.getComputedStyle(curr).getPropertyValue('background-color');
    };
    Sticky.defaultProps = {
        stickyPosition: _Sticky_types__WEBPACK_IMPORTED_MODULE_4__["StickyPositionType"].Both,
        isScrollSynced: true
    };
    Sticky.contextType = _ScrollablePane_ScrollablePane_types__WEBPACK_IMPORTED_MODULE_3__["ScrollablePaneContext"];
    return Sticky;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

function _isOffsetHeightDifferent(a, b) {
    return (a && b && a.current && b.current && a.current.offsetHeight !== b.current.offsetHeight);
}


/***/ }),

/***/ "./lib/components/Sticky/Sticky.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StickyPositionType", function() { return StickyPositionType; });
var StickyPositionType;
(function (StickyPositionType) {
    StickyPositionType[StickyPositionType["Both"] = 0] = "Both";
    StickyPositionType[StickyPositionType["Header"] = 1] = "Header";
    StickyPositionType[StickyPositionType["Footer"] = 2] = "Footer";
})(StickyPositionType || (StickyPositionType = {}));


/***/ }),

/***/ "./lib/components/Sticky/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Sticky__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Sticky/Sticky.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sticky", function() { return _Sticky__WEBPACK_IMPORTED_MODULE_0__["Sticky"]; });

/* harmony import */ var _Sticky_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Sticky/Sticky.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StickyPositionType", function() { return _Sticky_types__WEBPACK_IMPORTED_MODULE_1__["StickyPositionType"]; });





/***/ }),

/***/ "./lib/components/SwatchColorPicker/ColorPickerGridCell.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCellBase", function() { return ColorPickerGridCellBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* harmony import */ var _utilities_grid_GridCell__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/grid/GridCell.js");
/* harmony import */ var _Button_ActionButton_ActionButton_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Button/ActionButton/ActionButton.styles.js");







var getColorPickerGridCellButtonClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["memoizeFunction"])(function (theme, className, variantClassName, iconClassName, menuIconClassName, disabled, checked, expanded, isSplit) {
    var styles = Object(_Button_ActionButton_ActionButton_styles__WEBPACK_IMPORTED_MODULE_6__["getStyles"])(theme);
    return Object(_Styling__WEBPACK_IMPORTED_MODULE_2__["mergeStyleSets"])({
        root: [
            'ms-Button',
            styles.root,
            variantClassName,
            className,
            checked && ['is-checked', styles.rootChecked],
            disabled && ['is-disabled', styles.rootDisabled],
            !disabled &&
                !checked && {
                selectors: {
                    ':hover': styles.rootHovered,
                    ':focus': styles.rootFocused,
                    ':active': styles.rootPressed
                }
            },
            disabled && checked && [styles.rootCheckedDisabled],
            !disabled &&
                checked && {
                selectors: {
                    ':hover': styles.rootCheckedHovered,
                    ':active': styles.rootCheckedPressed
                }
            }
        ],
        flexContainer: ['ms-Button-flexContainer', styles.flexContainer]
    });
});
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var ColorCell = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ColorCell, _super);
    function ColorCell() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ColorCell;
}(_utilities_grid_GridCell__WEBPACK_IMPORTED_MODULE_5__["GridCell"]));
var ColorPickerGridCellBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ColorPickerGridCellBase, _super);
    function ColorPickerGridCellBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        /**
         * Render the core of a color cell
         * @returns - Element representing the core of the item
         */
        _this._onRenderColorOption = function (colorOption) {
            // Build an SVG for the cell with the given shape and color properties
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("svg", { className: _this._classNames.svg, viewBox: "0 0 20 20", fill: Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_4__["getColorFromString"])(colorOption.color).str }, _this.props.circle ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("circle", { cx: "50%", cy: "50%", r: "50%" }) : react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("rect", { width: "100%", height: "100%" })));
        };
        return _this;
    }
    ColorPickerGridCellBase.prototype.render = function () {
        var _a = this.props, item = _a.item, id = _a.id, selected = _a.selected, disabled = _a.disabled, styles = _a.styles, theme = _a.theme, circle = _a.circle, color = _a.color, onClick = _a.onClick, onHover = _a.onHover, onFocus = _a.onFocus, onMouseEnter = _a.onMouseEnter, onMouseMove = _a.onMouseMove, onMouseLeave = _a.onMouseLeave, onWheel = _a.onWheel, onKeyDown = _a.onKeyDown, height = _a.height, width = _a.width, borderWidth = _a.borderWidth;
        this._classNames = getClassNames(styles, {
            theme: theme,
            disabled: disabled,
            selected: selected,
            circle: circle,
            isWhite: this._isWhiteCell(color),
            height: height,
            width: width,
            borderWidth: borderWidth
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ColorCell, { item: item, id: id + "-" + item.id + "-" + item.index, key: item.id, disabled: disabled, role: 'gridcell', onRenderItem: this._onRenderColorOption, selected: selected, onClick: onClick, onHover: onHover, onFocus: onFocus, label: item.label, className: this._classNames.colorCell, getClassNames: getColorPickerGridCellButtonClassNames, index: item.index, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: onWheel, onKeyDown: onKeyDown }));
    };
    /**
     * Validate if the cell's color is white or not to apply whiteCell style
     * @param inputColor - The color of the current cell
     * @returns - Whether the cell's color is white or not.
     */
    ColorPickerGridCellBase.prototype._isWhiteCell = function (inputColor) {
        var color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_4__["getColorFromString"])(inputColor);
        return color.hex === 'ffffff';
    };
    ColorPickerGridCellBase.defaultProps = {
        circle: true,
        disabled: false,
        selected: false
    };
    return ColorPickerGridCellBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["PureComponent"]));



/***/ }),

/***/ "./lib/components/SwatchColorPicker/ColorPickerGridCell.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCell", function() { return ColorPickerGridCell; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _ColorPickerGridCell_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SwatchColorPicker/ColorPickerGridCell.base.js");
/* harmony import */ var _ColorPickerGridCell_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SwatchColorPicker/ColorPickerGridCell.styles.js");



var ColorPickerGridCell = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_ColorPickerGridCell_base__WEBPACK_IMPORTED_MODULE_1__["ColorPickerGridCellBase"], _ColorPickerGridCell_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'ColorPickerGridCell' }, true);


/***/ }),

/***/ "./lib/components/SwatchColorPicker/ColorPickerGridCell.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


// Size breakpoint when the default border width changes from 2px to 4px.
var CELL_BORDER_BREAKPOINT = 24;
var LARGE_BORDER = 4;
var SMALL_BORDER = 2;
var DIVIDING_PADDING = 2;
var DEFAULT_CELL_SIZE = 20;
var cellHighContrastFocus = {
    left: -2,
    top: -2,
    bottom: -2,
    right: -2,
    border: 'none',
    outlineColor: 'ButtonText'
};
var getStyles = function (props) {
    var _a, _b, _c, _d, _e;
    var theme = props.theme, disabled = props.disabled, selected = props.selected, circle = props.circle, isWhite = props.isWhite, _f = props.height, height = _f === void 0 ? DEFAULT_CELL_SIZE : _f, _g = props.width, width = _g === void 0 ? DEFAULT_CELL_SIZE : _g, borderWidth = props.borderWidth;
    var semanticColors = theme.semanticColors, palette = theme.palette;
    var buttonBorderHovered = palette.neutralLighter;
    var buttonBorderChecked = palette.neutralLight;
    var buttonBorderCheckedHovered = palette.neutralSecondary;
    var buttonBorderIsWhite = palette.neutralTertiary;
    // If user provided a value, use it. If not, then we decide depending on the 24px size breakpoint.
    var calculatedBorderWidth = borderWidth ? borderWidth : width < CELL_BORDER_BREAKPOINT ? SMALL_BORDER : LARGE_BORDER;
    return {
        // this is a button that wraps the color
        colorCell: [
            Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["getFocusStyle"])(theme, -1, 'relative', cellHighContrastFocus),
            {
                backgroundColor: semanticColors.bodyBackground,
                padding: 0,
                position: 'relative',
                boxSizing: 'border-box',
                display: 'inline-block',
                cursor: 'pointer',
                userSelect: 'none',
                borderRadius: 0,
                border: 'none',
                height: height,
                width: width
            },
            !circle && {
                selectors: (_a = {},
                    _a["." + _Utilities__WEBPACK_IMPORTED_MODULE_0__["IsFocusVisibleClassName"] + " &:focus::after"] = {
                        // -1px so that we don't increase visually the size of the cell.
                        outlineOffset: calculatedBorderWidth - 1 + "px"
                    },
                    _a)
            },
            // In focus state for circle we want a round border which is not possible with outline.
            circle && {
                borderRadius: '50%',
                selectors: (_b = {},
                    _b["." + _Utilities__WEBPACK_IMPORTED_MODULE_0__["IsFocusVisibleClassName"] + " &:focus::after"] = {
                        outline: 'none',
                        borderColor: semanticColors.focusBorder,
                        borderRadius: '50%',
                        left: -calculatedBorderWidth,
                        right: -calculatedBorderWidth,
                        top: -calculatedBorderWidth,
                        bottom: -calculatedBorderWidth,
                        selectors: (_c = {},
                            _c[_Styling__WEBPACK_IMPORTED_MODULE_1__["HighContrastSelector"]] = {
                                outline: "1px solid ButtonText"
                            },
                            _c)
                    },
                    _b)
            },
            selected && {
                padding: DIVIDING_PADDING,
                border: calculatedBorderWidth + "px solid " + buttonBorderChecked,
                selectors: (_d = {},
                    _d['&:hover::before'] = {
                        content: '""',
                        height: height,
                        width: width,
                        position: 'absolute',
                        top: -calculatedBorderWidth,
                        left: -calculatedBorderWidth,
                        borderRadius: circle ? '50%' : 'default',
                        boxShadow: "inset 0 0 0 1px " + buttonBorderCheckedHovered
                    },
                    _d)
            },
            !selected && {
                selectors: (_e = {},
                    _e['&:hover, &:active, &:focus'] = {
                        backgroundColor: semanticColors.bodyBackground,
                        padding: DIVIDING_PADDING,
                        border: calculatedBorderWidth + "px solid " + buttonBorderHovered
                    },
                    _e['&:focus'] = {
                        borderColor: semanticColors.bodyBackground,
                        padding: 0,
                        selectors: {
                            ':hover': {
                                borderColor: theme.palette.neutralLight,
                                padding: DIVIDING_PADDING
                            }
                        }
                    },
                    _e)
            },
            disabled && {
                color: semanticColors.disabledBodyText,
                pointerEvents: 'none',
                opacity: 0.3
            },
            isWhite &&
                !selected && {
                // fake a border for white
                backgroundColor: buttonBorderIsWhite,
                padding: 1
            }
        ],
        // the <svg> that holds the color
        svg: [
            {
                width: '100%',
                height: '100%'
            },
            circle && {
                borderRadius: '50%'
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/SwatchColorPicker/SwatchColorPicker.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPickerBase", function() { return SwatchColorPickerBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_grid_Grid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/grid/Grid.js");
/* harmony import */ var _ColorPickerGridCell__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/SwatchColorPicker/ColorPickerGridCell.js");
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("../utilities/lib/index.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var SwatchColorPickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwatchColorPickerBase, _super);
    function SwatchColorPickerBase(props) {
        var _this = _super.call(this, props) || this;
        _this.navigationIdleDelay = 250 /* ms */;
        // Add an index to each color cells. Memoizes this so that color cells do not re-render on every update.
        _this._getItemsWithIndex = Object(_uifabric_utilities__WEBPACK_IMPORTED_MODULE_5__["memoizeFunction"])(function (items) {
            return items.map(function (item, index) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, item, { index: index });
            });
        });
        /**
         * When the whole swatchColorPicker is blurred,
         * make sure to clear the pending focused stated
         */
        _this._onSwatchColorPickerBlur = function () {
            if (_this.props.onCellFocused) {
                _this._cellFocused = false;
                _this.props.onCellFocused();
            }
        };
        /**
         * Render a color cell
         * @param item - The item to render
         * @returns - Element representing the item
         */
        _this._renderOption = function (item) {
            var id = _this._id;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_ColorPickerGridCell__WEBPACK_IMPORTED_MODULE_4__["ColorPickerGridCell"], { item: item, id: id, color: item.color, styles: _this.props.getColorGridCellStyles, disabled: _this.props.disabled, onClick: _this._onCellClick, onHover: _this._onGridCellHovered, onFocus: _this._onGridCellFocused, selected: _this.state.selectedIndex !== undefined && _this.state.selectedIndex === item.index, circle: _this.props.cellShape === 'circle', label: item.label, onMouseEnter: _this._onMouseEnter, onMouseMove: _this._onMouseMove, onMouseLeave: _this._onMouseLeave, onWheel: _this._onWheel, onKeyDown: _this._onKeyDown, height: _this.props.cellHeight, width: _this.props.cellWidth, borderWidth: _this.props.cellBorderWidth }));
        };
        /**
         * Callback passed to the GridCell that will manage triggering the onCellHovered callback for mouseEnter
         */
        _this._onMouseEnter = function (ev) {
            if (!_this.props.focusOnHover) {
                if (!_this.isNavigationIdle || _this.props.disabled) {
                    return true;
                }
                return false;
            }
            if (_this.isNavigationIdle && !_this.props.disabled) {
                ev.currentTarget.focus();
            }
            return true;
        };
        /**
         * Callback passed to the GridCell that will manage Hover/Focus updates
         */
        _this._onMouseMove = function (ev) {
            if (!_this.props.focusOnHover) {
                if (!_this.isNavigationIdle || _this.props.disabled) {
                    return true;
                }
                return false;
            }
            var targetElement = ev.currentTarget;
            // If navigation is idle and the targetElement is the focused element bail out
            // if (!this.isNavigationIdle || (document && targetElement === (document.activeElement as HTMLElement))) {
            if (_this.isNavigationIdle && !(document && targetElement === document.activeElement)) {
                targetElement.focus();
            }
            return true;
        };
        /**
         * Callback passed to the GridCell that will manage Hover/Focus updates
         */
        _this._onMouseLeave = function (ev) {
            var parentSelector = _this.props.mouseLeaveParentSelector;
            if (!_this.props.focusOnHover || !parentSelector || !_this.isNavigationIdle || _this.props.disabled) {
                return;
            }
            // Get the the elements that math the given selector
            var elements = document.querySelectorAll(parentSelector);
            // iterate over the elements return to make sure it is a parent of the target and focus it
            for (var index = 0; index < elements.length; index += 1) {
                if (elements[index].contains(ev.currentTarget)) {
                    /**
                     * IE11 focus() method forces parents to scroll to top of element.
                     * Edge and IE expose a setActive() function for focusable divs that
                     * sets the page focus but does not scroll the parent element.
                     */
                    if (elements[index].setActive) {
                        try {
                            elements[index].setActive();
                        }
                        catch (e) {
                            /* no-op */
                        }
                    }
                    else {
                        elements[index].focus();
                    }
                    break;
                }
            }
        };
        /**
         * Callback to make sure we don't update the hovered element during mouse wheel
         */
        _this._onWheel = function () {
            _this.setNavigationTimeout();
        };
        /**
         * Callback that
         */
        _this._onKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].left || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].right) {
                _this.setNavigationTimeout();
            }
        };
        /**
         * Sets a timeout so we won't process any mouse "hover" events
         * while navigating (via mouseWheel or arrowKeys)
         */
        _this.setNavigationTimeout = function () {
            if (!_this.isNavigationIdle && _this.navigationIdleTimeoutId !== undefined) {
                _this.async.clearTimeout(_this.navigationIdleTimeoutId);
                _this.navigationIdleTimeoutId = undefined;
            }
            else {
                _this.isNavigationIdle = false;
            }
            _this.navigationIdleTimeoutId = _this.async.setTimeout(function () {
                _this.isNavigationIdle = true;
            }, _this.navigationIdleDelay);
        };
        /**
         * Callback passed to the GridCell class that will trigger the onCellHovered callback of the SwatchColorPicker
         * NOTE: This will not be triggered if shouldFocusOnHover === true
         */
        _this._onGridCellHovered = function (item) {
            var onCellHovered = _this.props.onCellHovered;
            if (onCellHovered) {
                return item ? onCellHovered(item.id, item.color) : onCellHovered();
            }
        };
        /**
         * Callback passed to the GridCell class that will trigger the onCellFocus callback of the SwatchColorPicker
         */
        _this._onGridCellFocused = function (item) {
            var onCellFocused = _this.props.onCellFocused;
            if (onCellFocused) {
                if (item) {
                    _this._cellFocused = true;
                    return onCellFocused(item.id, item.color);
                }
                else {
                    _this._cellFocused = false;
                    return onCellFocused();
                }
            }
        };
        /**
         * Handle the click on a cell
         * @param item - The cell that the click was fired against
         */
        _this._onCellClick = function (item) {
            if (_this.props.disabled) {
                return;
            }
            var index = item.index;
            // If we have a valid index and it is not already
            // selected, select it
            if (index >= 0 && index !== _this.state.selectedIndex) {
                if (_this.props.onCellFocused && _this._cellFocused) {
                    _this._cellFocused = false;
                    _this.props.onCellFocused();
                }
                if (_this.props.onColorChanged) {
                    _this.props.onColorChanged(item.id, item.color);
                }
                // Update internal state only if the component is uncontrolled
                if (_this.props.isControlled !== true) {
                    _this.setState({
                        selectedIndex: index
                    });
                }
            }
        };
        _this._id = props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('swatchColorPicker');
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnMutuallyExclusive"])('SwatchColorPicker', _this.props, {
                focusOnHover: 'onHover'
            });
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["warnConditionallyRequiredProps"])('SwatchColorPicker', _this.props, ['focusOnHover'], 'mouseLeaveParentSelector', !!_this.props.mouseLeaveParentSelector);
        }
        _this.isNavigationIdle = true;
        _this.async = new _Utilities__WEBPACK_IMPORTED_MODULE_2__["Async"](_this);
        var selectedIndex;
        if (props.selectedId) {
            selectedIndex = _this._getSelectedIndex(props.colorCells, props.selectedId);
        }
        _this.state = {
            selectedIndex: selectedIndex
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    SwatchColorPickerBase.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.selectedId !== undefined) {
            this.setState({
                selectedIndex: this._getSelectedIndex(newProps.colorCells, newProps.selectedId)
            });
        }
    };
    SwatchColorPickerBase.prototype.componentWillUnmount = function () {
        if (this.props.onCellFocused && this._cellFocused) {
            this._cellFocused = false;
            this.props.onCellFocused();
        }
    };
    SwatchColorPickerBase.prototype.render = function () {
        var _a = this.props, colorCells = _a.colorCells, columnCount = _a.columnCount, positionInSet = _a.positionInSet, setSize = _a.setSize, shouldFocusCircularNavigate = _a.shouldFocusCircularNavigate, className = _a.className, doNotContainWithinFocusZone = _a.doNotContainWithinFocusZone, styles = _a.styles, cellMargin = _a.cellMargin;
        var classNames = getClassNames(styles, {
            theme: this.props.theme,
            className: className,
            cellMargin: cellMargin
        });
        if (colorCells.length < 1 || columnCount < 1) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_utilities_grid_Grid__WEBPACK_IMPORTED_MODULE_3__["Grid"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { items: this._getItemsWithIndex(colorCells), columnCount: columnCount, onRenderItem: this._renderOption, positionInSet: positionInSet && positionInSet, setSize: setSize && setSize, shouldFocusCircularNavigate: shouldFocusCircularNavigate, doNotContainWithinFocusZone: doNotContainWithinFocusZone, onBlur: this._onSwatchColorPickerBlur, theme: this.props.theme, 
            // tslint:disable-next-line:jsx-no-lambda
            styles: function (props) { return ({
                root: classNames.root,
                tableCell: classNames.tableCell,
                focusedContainer: classNames.focusedContainer
            }); } })));
    };
    /**
     * Get the selected item's index
     * @param items - The items to search
     * @param selectedId - The selected item's id to find
     * @returns - The index of the selected item's id, -1 if there was no match
     */
    SwatchColorPickerBase.prototype._getSelectedIndex = function (items, selectedId) {
        var selectedIndex = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findIndex"])(items, function (item) { return item.id === selectedId; });
        return selectedIndex >= 0 ? selectedIndex : undefined;
    };
    SwatchColorPickerBase.defaultProps = {
        cellShape: 'circle',
        disabled: false,
        shouldFocusCircularNavigate: true,
        cellMargin: 10
    };
    return SwatchColorPickerBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/SwatchColorPicker/SwatchColorPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPicker", function() { return SwatchColorPicker; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _SwatchColorPicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SwatchColorPicker/SwatchColorPicker.base.js");
/* harmony import */ var _SwatchColorPicker_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SwatchColorPicker/SwatchColorPicker.styles.js");



var SwatchColorPicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_SwatchColorPicker_base__WEBPACK_IMPORTED_MODULE_1__["SwatchColorPickerBase"], _SwatchColorPicker_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'SwatchColorPicker' });


/***/ }),

/***/ "./lib/components/SwatchColorPicker/SwatchColorPicker.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    focusedContainer: 'ms-swatchColorPickerBodyContainer'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme, cellMargin = props.cellMargin;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: {
            margin: '8px 0',
            borderCollapse: 'collapse'
        },
        tableCell: {
            padding: cellMargin / 2
        },
        focusedContainer: [
            classNames.focusedContainer,
            {
                clear: 'both',
                display: 'block',
                minWidth: '180px'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/SwatchColorPicker/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/SwatchColorPicker/SwatchColorPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPicker", function() { return _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_0__["SwatchColorPicker"]; });

/* harmony import */ var _SwatchColorPicker_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/SwatchColorPicker/SwatchColorPicker.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPickerBase", function() { return _SwatchColorPicker_base__WEBPACK_IMPORTED_MODULE_1__["SwatchColorPickerBase"]; });

/* harmony import */ var _ColorPickerGridCell__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/SwatchColorPicker/ColorPickerGridCell.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCell", function() { return _ColorPickerGridCell__WEBPACK_IMPORTED_MODULE_2__["ColorPickerGridCell"]; });

/* harmony import */ var _ColorPickerGridCell_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/SwatchColorPicker/ColorPickerGridCell.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCellBase", function() { return _ColorPickerGridCell_base__WEBPACK_IMPORTED_MODULE_3__["ColorPickerGridCellBase"]; });







/***/ }),

/***/ "./lib/components/TeachingBubble/TeachingBubble.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleBase", function() { return TeachingBubbleBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TeachingBubbleContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubbleContent.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/common/DirectionalHint.js");






var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var TeachingBubbleBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TeachingBubbleBase, _super);
    // Constructor
    function TeachingBubbleBase(props) {
        var _this = _super.call(this, props) || this;
        _this.rootElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.state = {};
        _this._defaultCalloutProps = {
            beakWidth: 16,
            gapSpace: 0,
            setInitialFocus: true,
            doNotLayer: false,
            directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_5__["DirectionalHint"].rightCenter
        };
        return _this;
    }
    TeachingBubbleBase.prototype.focus = function () {
        if (this.rootElement.current) {
            this.rootElement.current.focus();
        }
    };
    TeachingBubbleBase.prototype.render = function () {
        var _a = this.props, setCalloutProps = _a.calloutProps, targetElement = _a.targetElement, onDismiss = _a.onDismiss, isWide = _a.isWide, styles = _a.styles, theme = _a.theme, target = _a.target;
        var calloutProps = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this._defaultCalloutProps, setCalloutProps);
        var stylesProps = {
            theme: theme,
            isWide: isWide,
            calloutClassName: calloutProps ? calloutProps.className : undefined
        };
        var classNames = getClassNames(styles, stylesProps);
        var calloutStyles = classNames.subComponentStyles
            ? classNames.subComponentStyles.callout
            : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_4__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ target: target || targetElement, onDismiss: onDismiss }, calloutProps, { className: classNames.root, styles: calloutStyles, hideOverflow: true }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.rootElement },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TeachingBubbleContent__WEBPACK_IMPORTED_MODULE_3__["TeachingBubbleContent"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props)))));
    };
    TeachingBubbleBase.defaultProps = {
        /**
         * Default calloutProps is deprecated in favor of private `_defaultCalloutProps`.
         * Remove in next release.
         * @deprecated In favor of private `_defaultCalloutProps`.
         */
        calloutProps: {
            beakWidth: 16,
            gapSpace: 0,
            setInitialFocus: true,
            doNotLayer: false,
            directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_5__["DirectionalHint"].rightCenter
        }
    };
    return TeachingBubbleBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/TeachingBubble/TeachingBubble.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TeachingBubble", function() { return TeachingBubble; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TeachingBubble_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubble.base.js");
/* harmony import */ var _TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubble.styles.js");



var TeachingBubble = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_TeachingBubble_base__WEBPACK_IMPORTED_MODULE_1__["TeachingBubbleBase"], _TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'TeachingBubble' });


/***/ }),

/***/ "./lib/components/TeachingBubble/TeachingBubble.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var globalClassNames = {
    root: 'ms-TeachingBubble',
    body: 'ms-TeachingBubble-body',
    bodyContent: 'ms-TeachingBubble-bodycontent',
    closeButton: 'ms-TeachingBubble-closebutton',
    content: 'ms-TeachingBubble-content',
    footer: 'ms-TeachingBubble-footer',
    header: 'ms-TeachingBubble-header',
    headerIsCondensed: 'ms-TeachingBubble-header--condensed',
    headerIsSmall: 'ms-TeachingBubble-header--small',
    headerIsLarge: 'ms-TeachingBubble-header--large',
    headline: 'ms-TeachingBubble-headline',
    image: 'ms-TeachingBubble-image',
    primaryButton: 'ms-TeachingBubble-primaryButton',
    secondaryButton: 'ms-TeachingBubble-secondaryButton',
    subText: 'ms-TeachingBubble-subText',
    // TODO: Button global class name usage should be converted to a styles function once
    //        Button supports JS styling, which means these button names can be removed.
    button: 'ms-Button',
    buttonLabel: 'ms-Button-label'
};
var opacityFadeIn = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["keyframes"])({
    '0%': {
        opacity: 0,
        animationTimingFunction: _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"].easeFunction1,
        transform: 'scale3d(.90,.90,.90)'
    },
    '100%': {
        opacity: 1,
        transform: 'scale3d(1,1,1)'
    }
});
var rootStyle = function (isWide) {
    return [
        {
            display: 'block',
            maxWidth: 364,
            border: 0,
            outline: 'transparent',
            width: 'calc(100% + 1px)',
            animationName: "" + opacityFadeIn,
            animationDuration: '300ms',
            animationTimingFunction: 'linear',
            animationFillMode: 'both'
        },
        isWide && {
            maxWidth: 456
        }
    ];
};
var headerStyle = function (classNames, hasCondensedHeadline, hasSmallHeadline) {
    if (hasCondensedHeadline) {
        return [
            classNames.headerIsCondensed,
            {
                marginBottom: 14
            }
        ];
    }
    return [
        hasSmallHeadline && classNames.headerIsSmall,
        !hasSmallHeadline && classNames.headerIsLarge,
        {
            selectors: {
                ':not(:last-child)': {
                    marginBottom: 14
                }
            }
        }
    ];
};
var getStyles = function (props) {
    var _a, _b, _c;
    var calloutClassName = props.calloutClassName, hasCondensedHeadline = props.hasCondensedHeadline, hasSmallHeadline = props.hasSmallHeadline, isWide = props.isWide, primaryButtonClassName = props.primaryButtonClassName, secondaryButtonClassName = props.secondaryButtonClassName, theme = props.theme;
    var hasLargeHeadline = !hasCondensedHeadline && !hasSmallHeadline;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(globalClassNames, theme);
    return {
        root: [classNames.root, fonts.medium, calloutClassName],
        body: [
            classNames.body,
            {
                selectors: {
                    ':not(:last-child)': {
                        marginBottom: 20
                    }
                }
            }
        ],
        bodyContent: [
            classNames.bodyContent,
            {
                padding: '20px 24px 20px 24px'
            }
        ],
        closeButton: [
            classNames.closeButton,
            {
                position: 'absolute',
                right: 0,
                top: 0,
                margin: '15px 15px 0 0',
                borderRadius: 0,
                color: palette.white,
                fontSize: fonts.small.fontSize,
                selectors: {
                    ':hover': {
                        background: palette.themeDarkAlt,
                        color: palette.white
                    },
                    ':active': {
                        background: palette.themeDark,
                        color: palette.white
                    }
                }
            }
        ],
        content: [
            classNames.content
        ].concat(rootStyle(isWide), [
            isWide && {
                display: 'flex'
            }
        ]),
        footer: [
            classNames.footer,
            {
                display: 'flex',
                flex: 'auto',
                alignItems: 'center',
                color: palette.white,
                selectors: (_a = {},
                    // TODO: global class name usage should be converted to a button styles function once Button supports JS styling
                    _a["." + classNames.button + ":not(:first-child)"] = {
                        marginLeft: 10
                    },
                    _a)
            }
        ],
        header: [
            classNames.header
        ].concat(headerStyle(classNames, hasCondensedHeadline, hasSmallHeadline), [
            (hasCondensedHeadline || hasSmallHeadline) && [
                fonts.medium,
                {
                    marginRight: 24,
                    fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
                }
            ]
        ]),
        headline: [
            classNames.headline,
            {
                margin: 0,
                color: palette.white,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].semibold
            },
            hasLargeHeadline && [
                {
                    fontSize: fonts.xLarge.fontSize
                }
            ]
        ],
        imageContent: [
            classNames.header,
            classNames.image,
            isWide && {
                display: 'flex',
                alignItems: 'center',
                maxWidth: 154
            }
        ],
        primaryButton: [
            classNames.primaryButton,
            primaryButtonClassName,
            {
                backgroundColor: palette.white,
                borderColor: palette.white,
                color: palette.themePrimary,
                whiteSpace: 'nowrap',
                selectors: (_b = {},
                    // TODO: global class name usage should be converted to a button styles function once Button supports JS styling
                    _b["." + classNames.buttonLabel] = fonts.medium,
                    _b[':hover'] = {
                        backgroundColor: palette.themeLighter,
                        borderColor: palette.themeLighter,
                        color: palette.themePrimary
                    },
                    _b[':focus'] = {
                        backgroundColor: palette.themeLighter,
                        borderColor: palette.white
                    },
                    _b[':active'] = {
                        backgroundColor: palette.white,
                        borderColor: palette.white,
                        color: palette.themePrimary
                    },
                    _b)
            }
        ],
        secondaryButton: [
            classNames.secondaryButton,
            secondaryButtonClassName,
            {
                backgroundColor: palette.themePrimary,
                borderColor: palette.white,
                whiteSpace: 'nowrap',
                selectors: (_c = {},
                    // TODO: global class name usage should be converted to a button styles function once Button supports JS styling
                    _c["." + classNames.buttonLabel] = [
                        fonts.medium,
                        {
                            color: palette.white
                        }
                    ],
                    _c['&:hover, &:focus'] = {
                        backgroundColor: palette.themeDarkAlt,
                        borderColor: palette.white
                    },
                    _c[':active'] = {
                        backgroundColor: palette.themePrimary,
                        borderColor: palette.white
                    },
                    _c)
            }
        ],
        subText: [
            classNames.subText,
            {
                margin: 0,
                fontSize: fonts.medium.fontSize,
                color: palette.white,
                fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular
            }
        ],
        subComponentStyles: {
            callout: {
                root: rootStyle(isWide).concat([fonts.medium]),
                beak: [
                    {
                        background: palette.themePrimary
                    }
                ],
                calloutMain: [
                    {
                        background: palette.themePrimary
                    }
                ]
            }
        }
    };
};


/***/ }),

/***/ "./lib/components/TeachingBubble/TeachingBubbleContent.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContentBase", function() { return TeachingBubbleContentBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Image.js");
/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Stack.js");
/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/FocusTrapZone.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var TeachingBubbleContentBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TeachingBubbleContentBase, _super);
    function TeachingBubbleContentBase(props) {
        var _this = _super.call(this, props) || this;
        _this.rootElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onKeyDown = function (e) {
            if (_this.props.onDismiss) {
                if (e.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape) {
                    _this.props.onDismiss();
                }
            }
        };
        _this.state = {};
        return _this;
    }
    TeachingBubbleContentBase.prototype.componentDidMount = function () {
        if (this.props.onDismiss) {
            document.addEventListener('keydown', this._onKeyDown, false);
        }
    };
    TeachingBubbleContentBase.prototype.componentWillUnmount = function () {
        if (this.props.onDismiss) {
            document.removeEventListener('keydown', this._onKeyDown);
        }
    };
    TeachingBubbleContentBase.prototype.focus = function () {
        if (this.rootElement.current) {
            this.rootElement.current.focus();
        }
    };
    TeachingBubbleContentBase.prototype.render = function () {
        var _a = this.props, children = _a.children, illustrationImage = _a.illustrationImage, primaryButtonProps = _a.primaryButtonProps, secondaryButtonProps = _a.secondaryButtonProps, headline = _a.headline, hasCondensedHeadline = _a.hasCondensedHeadline, hasCloseIcon = _a.hasCloseIcon, onDismiss = _a.onDismiss, closeButtonAriaLabel = _a.closeButtonAriaLabel, hasSmallHeadline = _a.hasSmallHeadline, isWide = _a.isWide, styles = _a.styles, theme = _a.theme, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, customFooterContent = _a.footerContent;
        var imageContent;
        var headerContent;
        var bodyContent;
        var footerContent;
        var closeButton;
        var classNames = getClassNames(styles, {
            theme: theme,
            hasCondensedHeadline: hasCondensedHeadline,
            hasSmallHeadline: hasSmallHeadline,
            isWide: isWide,
            primaryButtonClassName: primaryButtonProps ? primaryButtonProps.className : undefined,
            secondaryButtonClassName: secondaryButtonProps ? secondaryButtonProps.className : undefined
        });
        if (illustrationImage && illustrationImage.src) {
            imageContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.imageContent },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Image__WEBPACK_IMPORTED_MODULE_4__["Image"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, illustrationImage))));
        }
        if (headline) {
            var HeaderWrapperAs = typeof headline === 'string' ? 'p' : 'div';
            headerContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.header },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](HeaderWrapperAs, { role: "heading", className: classNames.headline, id: ariaLabelledBy }, headline)));
        }
        if (children) {
            var BodyContentWrapperAs = typeof children === 'string' ? 'p' : 'div';
            bodyContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.body },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](BodyContentWrapperAs, { className: classNames.subText, id: ariaDescribedBy }, children)));
        }
        if (primaryButtonProps || secondaryButtonProps || customFooterContent) {
            footerContent = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Stack__WEBPACK_IMPORTED_MODULE_5__["Stack"], { className: classNames.footer, horizontal: true, horizontalAlign: customFooterContent ? 'space-between' : 'end' },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Stack__WEBPACK_IMPORTED_MODULE_5__["Stack"].Item, { align: "center" }, react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", null, customFooterContent)),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Stack__WEBPACK_IMPORTED_MODULE_5__["Stack"].Item, null,
                    secondaryButtonProps && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["DefaultButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, secondaryButtonProps, { className: classNames.secondaryButton })),
                    primaryButtonProps && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["PrimaryButton"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, primaryButtonProps, { className: classNames.primaryButton })))));
        }
        if (hasCloseIcon) {
            closeButton = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["IconButton"], { className: classNames.closeButton, iconProps: { iconName: 'Cancel' }, title: closeButtonAriaLabel, ariaLabel: closeButtonAriaLabel, onClick: onDismiss }));
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.content, ref: this.rootElement, role: 'dialog', tabIndex: -1, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "data-is-focusable": true },
            imageContent,
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusTrapZone__WEBPACK_IMPORTED_MODULE_6__["FocusTrapZone"], { isClickableOutsideFocusTrap: true },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.bodyContent },
                    headerContent,
                    bodyContent,
                    footerContent,
                    closeButton))));
    };
    // Specify default props values
    TeachingBubbleContentBase.defaultProps = {
        hasCondensedHeadline: false,
        imageProps: {
            imageFit: _Image__WEBPACK_IMPORTED_MODULE_4__["ImageFit"].cover,
            width: 364,
            height: 130
        }
    };
    return TeachingBubbleContentBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/TeachingBubble/TeachingBubbleContent.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContent", function() { return TeachingBubbleContent; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TeachingBubbleContent_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubbleContent.base.js");
/* harmony import */ var _TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubble.styles.js");



var TeachingBubbleContent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_TeachingBubbleContent_base__WEBPACK_IMPORTED_MODULE_1__["TeachingBubbleContentBase"], _TeachingBubble_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'TeachingBubbleContent' });


/***/ }),

/***/ "./lib/components/TeachingBubble/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _TeachingBubble__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubble.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubble", function() { return _TeachingBubble__WEBPACK_IMPORTED_MODULE_0__["TeachingBubble"]; });

/* harmony import */ var _TeachingBubble_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubble.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleBase", function() { return _TeachingBubble_base__WEBPACK_IMPORTED_MODULE_1__["TeachingBubbleBase"]; });

/* harmony import */ var _TeachingBubbleContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubbleContent.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContent", function() { return _TeachingBubbleContent__WEBPACK_IMPORTED_MODULE_2__["TeachingBubbleContent"]; });

/* harmony import */ var _TeachingBubbleContent_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/TeachingBubble/TeachingBubbleContent.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContentBase", function() { return _TeachingBubbleContent_base__WEBPACK_IMPORTED_MODULE_3__["TeachingBubbleContentBase"]; });







/***/ }),

/***/ "./lib/components/Text/Text.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return Text; });
/* harmony import */ var _Foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Foundation.js");
/* harmony import */ var _Text_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Text/Text.view.js");
/* harmony import */ var _Text_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Text/Text.styles.js");



var Text = Object(_Foundation__WEBPACK_IMPORTED_MODULE_0__["createComponent"])(_Text_view__WEBPACK_IMPORTED_MODULE_1__["TextView"], {
    displayName: 'Text',
    styles: _Text_styles__WEBPACK_IMPORTED_MODULE_2__["TextStyles"]
});
/* harmony default export */ __webpack_exports__["default"] = (Text);


/***/ }),

/***/ "./lib/components/Text/Text.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextStyles", function() { return TextStyles; });
var TextStyles = function (props, theme) {
    var as = props.as, className = props.className, block = props.block, nowrap = props.nowrap, variant = props.variant;
    var fonts = theme.fonts;
    var variantObject = fonts[variant || 'medium'];
    return {
        root: [
            theme.fonts.medium,
            {
                display: block ? (as === 'td' ? 'table-cell' : 'block') : 'inline',
                fontFamily: (variantObject && variantObject.fontFamily) || 'inherit',
                fontSize: (variantObject && variantObject.fontSize) || 'inherit',
                fontWeight: (variantObject && variantObject.fontWeight) || 'inherit',
                color: (variantObject && variantObject.color) || 'inherit',
                mozOsxFontSmoothing: variantObject && variantObject.MozOsxFontSmoothing,
                webkitFontSmoothing: variantObject && variantObject.WebkitFontSmoothing
            },
            nowrap && {
                whiteSpace: 'nowrap',
                overflow: 'hidden',
                textOverflow: 'ellipsis'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Text/Text.view.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextView", function() { return TextView; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Foundation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Foundation.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");

/** @jsx withSlots */


var TextView = function (props) {
    if (!props.children) {
        return null;
    }
    var block = props.block, className = props.className, _a = props.as, RootType = _a === void 0 ? 'span' : _a, variant = props.variant, nowrap = props.nowrap, rest = tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"](props, ["block", "className", "as", "variant", "nowrap"]);
    var Slots = Object(_Foundation__WEBPACK_IMPORTED_MODULE_1__["getSlots"])(props, {
        root: RootType
    });
    return Object(_Foundation__WEBPACK_IMPORTED_MODULE_1__["withSlots"])(Slots.root, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(rest, _Utilities__WEBPACK_IMPORTED_MODULE_2__["htmlElementProperties"])));
};


/***/ }),

/***/ "./lib/components/Text/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Text/Text.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _Text__WEBPACK_IMPORTED_MODULE_0__["Text"]; });

/* harmony import */ var _Text_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Text/Text.view.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextView", function() { return _Text_view__WEBPACK_IMPORTED_MODULE_1__["TextView"]; });

/* harmony import */ var _Text_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Text/Text.styles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyles", function() { return _Text_styles__WEBPACK_IMPORTED_MODULE_2__["TextStyles"]; });






/***/ }),

/***/ "./lib/components/TextField/MaskedTextField/MaskedTextField.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_CHAR", function() { return DEFAULT_MASK_CHAR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaskedTextField", function() { return MaskedTextField; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TextField/TextField.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _inputMask__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/TextField/MaskedTextField/inputMask.js");





var DEFAULT_MASK_CHAR = '_';
var MaskedTextField = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MaskedTextField, _super);
    function MaskedTextField(props) {
        var _this = _super.call(this, props) || this;
        /**
         * Tell BaseComponent to bypass resolution of componentRef.
         */
        _this._skipComponentRefResolution = true;
        _this._textField = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onFocus = function (event) {
            if (_this.props.onFocus) {
                _this.props.onFocus(event);
            }
            _this._isFocused = true;
            // Move the cursor position to the leftmost unfilled position
            for (var i = 0; i < _this._maskCharData.length; i++) {
                if (!_this._maskCharData[i].value) {
                    _this.setState({
                        maskCursorPosition: _this._maskCharData[i].displayIndex
                    });
                    break;
                }
            }
        };
        _this._onBlur = function (event) {
            if (_this.props.onBlur) {
                _this.props.onBlur(event);
            }
            _this._isFocused = false;
            _this._moveCursorOnMouseUp = true;
        };
        _this._onMouseDown = function (event) {
            if (_this.props.onMouseDown) {
                _this.props.onMouseDown(event);
            }
            if (!_this._isFocused) {
                _this._moveCursorOnMouseUp = true;
            }
        };
        _this._onMouseUp = function (event) {
            if (_this.props.onMouseUp) {
                _this.props.onMouseUp(event);
            }
            // Move the cursor on mouseUp after focusing the textField
            if (_this._moveCursorOnMouseUp) {
                _this._moveCursorOnMouseUp = false;
                // Move the cursor position to the rightmost unfilled position
                for (var i = 0; i < _this._maskCharData.length; i++) {
                    if (!_this._maskCharData[i].value) {
                        _this.setState({
                            maskCursorPosition: _this._maskCharData[i].displayIndex
                        });
                        break;
                    }
                }
            }
        };
        _this._onInputChange = function (ev, value) {
            var textField = _this._textField.current;
            if (_this._changeSelectionData === null && textField) {
                _this._changeSelectionData = {
                    changeType: 'default',
                    selectionStart: textField.selectionStart !== null ? textField.selectionStart : -1,
                    selectionEnd: textField.selectionEnd !== null ? textField.selectionEnd : -1
                };
            }
            if (!_this._changeSelectionData) {
                return;
            }
            var displayValue = _this.state.displayValue;
            // The initial value of cursorPos does not matter
            var cursorPos = 0;
            var _a = _this._changeSelectionData, changeType = _a.changeType, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;
            if (changeType === 'textPasted') {
                var charsSelected = selectionEnd - selectionStart, charCount = value.length + charsSelected - displayValue.length, startPos = selectionStart, pastedString = value.substr(startPos, charCount);
                // Clear any selected characters
                if (charsSelected) {
                    _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["clearRange"])(_this._maskCharData, selectionStart, charsSelected);
                }
                cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["insertString"])(_this._maskCharData, startPos, pastedString);
            }
            else if (changeType === 'delete' || changeType === 'backspace') {
                // isDel is true If the characters are removed LTR, otherwise RTL
                var isDel = changeType === 'delete', charCount = selectionEnd - selectionStart;
                if (charCount) {
                    // charCount is > 0 if range was deleted
                    _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["clearRange"])(_this._maskCharData, selectionStart, charCount);
                    cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getRightFormatIndex"])(_this._maskCharData, selectionStart);
                }
                else {
                    // If charCount === 0, there was no selection and a single character was deleted
                    if (isDel) {
                        _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["clearNext"])(_this._maskCharData, selectionStart);
                        cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getRightFormatIndex"])(_this._maskCharData, selectionStart);
                    }
                    else {
                        _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["clearPrev"])(_this._maskCharData, selectionStart);
                        cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getLeftFormatIndex"])(_this._maskCharData, selectionStart);
                    }
                }
            }
            else if (value.length > displayValue.length) {
                // This case is if the user added characters
                var charCount = value.length - displayValue.length, startPos = selectionEnd - charCount, enteredString = value.substr(startPos, charCount);
                cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["insertString"])(_this._maskCharData, startPos, enteredString);
            }
            else if (value.length <= displayValue.length) {
                /**
                 * This case is reached only if the user has selected a block of 1 or more
                 * characters and input a character replacing the characters they've selected.
                 */
                var charCount = 1, selectCount = displayValue.length + charCount - value.length, startPos = selectionEnd - charCount, enteredString = value.substr(startPos, charCount);
                // Clear the selected range
                _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["clearRange"])(_this._maskCharData, startPos, selectCount);
                // Insert the printed character
                cursorPos = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["insertString"])(_this._maskCharData, startPos, enteredString);
            }
            _this._changeSelectionData = null;
            var newValue = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getMaskDisplay"])(_this.props.mask, _this._maskCharData, _this.props.maskChar);
            _this.setState({
                displayValue: newValue,
                maskCursorPosition: cursorPos
            });
            // Perform onChange after input has been processed. Return value is expected to be the displayed text
            if (_this.props.onChange) {
                _this.props.onChange(ev, newValue);
            }
        };
        _this._onKeyDown = function (event) {
            var current = _this._textField.current;
            if (_this.props.onKeyDown) {
                _this.props.onKeyDown(event);
            }
            _this._changeSelectionData = null;
            if (current && current.value) {
                var keyCode = event.keyCode, ctrlKey = event.ctrlKey, metaKey = event.metaKey;
                // Ignore ctrl and meta keydown
                if (ctrlKey || metaKey) {
                    return;
                }
                // On backspace or delete, store the selection and the keyCode
                if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].backspace || keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].del) {
                    var selectionStart = event.target.selectionStart, selectionEnd = event.target.selectionEnd;
                    // Check if backspace or delete press is valid.
                    if (!(keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].backspace && selectionEnd && selectionEnd > 0) &&
                        !(keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].del && selectionStart !== null && selectionStart < current.value.length)) {
                        return;
                    }
                    _this._changeSelectionData = {
                        changeType: keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].backspace ? 'backspace' : 'delete',
                        selectionStart: selectionStart !== null ? selectionStart : -1,
                        selectionEnd: selectionEnd !== null ? selectionEnd : -1
                    };
                }
            }
        };
        _this._onPaste = function (event) {
            if (_this.props.onPaste) {
                _this.props.onPaste(event);
            }
            var selectionStart = event.target.selectionStart, selectionEnd = event.target.selectionEnd;
            // Store the paste selection range
            _this._changeSelectionData = {
                changeType: 'textPasted',
                selectionStart: selectionStart !== null ? selectionStart : -1,
                selectionEnd: selectionEnd !== null ? selectionEnd : -1
            };
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        // Translate mask into charData
        _this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["parseMask"])(props.mask, props.maskFormat);
        // If an initial value is provided, use it to populate the format chars
        props.value !== undefined && _this.setValue(props.value);
        _this._isFocused = false;
        _this._moveCursorOnMouseUp = false;
        _this.state = {
            displayValue: Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getMaskDisplay"])(props.mask, _this._maskCharData, props.maskChar)
        };
        return _this;
    }
    // tslint:disable-next-line function-name
    MaskedTextField.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        if (newProps.mask !== this.props.mask || newProps.value !== this.props.value) {
            this._maskCharData = Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["parseMask"])(newProps.mask, newProps.maskFormat);
            newProps.value !== undefined && this.setValue(newProps.value);
            this.setState({
                displayValue: Object(_inputMask__WEBPACK_IMPORTED_MODULE_4__["getMaskDisplay"])(newProps.mask, this._maskCharData, newProps.maskChar)
            });
        }
    };
    MaskedTextField.prototype.componentDidUpdate = function () {
        // Move the cursor to the start of the mask format on update
        if (this.state.maskCursorPosition !== undefined && this._textField.current) {
            this._textField.current.setSelectionRange(this.state.maskCursorPosition, this.state.maskCursorPosition);
        }
    };
    MaskedTextField.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TextField__WEBPACK_IMPORTED_MODULE_2__["TextField"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, this.props, { onFocus: this._onFocus, onBlur: this._onBlur, onMouseDown: this._onMouseDown, onMouseUp: this._onMouseUp, onChange: this._onInputChange, onKeyDown: this._onKeyDown, onPaste: this._onPaste, value: this.state.displayValue || '', componentRef: this._textField })));
    };
    Object.defineProperty(MaskedTextField.prototype, "value", {
        /**
         * @returns The value of all filled format characters or undefined if not all format characters are filled
         */
        get: function () {
            var value = '';
            for (var i = 0; i < this._maskCharData.length; i++) {
                if (!this._maskCharData[i].value) {
                    return undefined;
                }
                value += this._maskCharData[i].value;
            }
            return value;
        },
        enumerable: true,
        configurable: true
    });
    MaskedTextField.prototype.setValue = function (newValue) {
        var valueIndex = 0, charDataIndex = 0;
        while (valueIndex < newValue.length && charDataIndex < this._maskCharData.length) {
            // Test if the next character in the new value fits the next format character
            var testVal = newValue[valueIndex];
            if (this._maskCharData[charDataIndex].format.test(testVal)) {
                this._maskCharData[charDataIndex].value = testVal;
                charDataIndex++;
            }
            valueIndex++;
        }
    };
    MaskedTextField.prototype.focus = function () {
        var current = this._textField.current;
        current && current.focus();
    };
    MaskedTextField.prototype.blur = function () {
        var current = this._textField.current;
        current && current.blur();
    };
    MaskedTextField.prototype.select = function () {
        var current = this._textField.current;
        current && current.select();
    };
    MaskedTextField.prototype.setSelectionStart = function (value) {
        var current = this._textField.current;
        current && current.setSelectionStart(value);
    };
    MaskedTextField.prototype.setSelectionEnd = function (value) {
        var current = this._textField.current;
        current && current.setSelectionEnd(value);
    };
    MaskedTextField.prototype.setSelectionRange = function (start, end) {
        var current = this._textField.current;
        current && current.setSelectionRange(start, end);
    };
    Object.defineProperty(MaskedTextField.prototype, "selectionStart", {
        get: function () {
            var current = this._textField.current;
            return current && current.selectionStart !== null ? current.selectionStart : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(MaskedTextField.prototype, "selectionEnd", {
        get: function () {
            var current = this._textField.current;
            return current && current.selectionEnd ? current.selectionEnd : -1;
        },
        enumerable: true,
        configurable: true
    });
    MaskedTextField.defaultProps = {
        maskChar: DEFAULT_MASK_CHAR,
        maskFormat: _inputMask__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_MASK_FORMAT_CHARS"]
    };
    return MaskedTextField;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/TextField/MaskedTextField/inputMask.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_FORMAT_CHARS", function() { return DEFAULT_MASK_FORMAT_CHARS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMask", function() { return parseMask; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaskDisplay", function() { return getMaskDisplay; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRightFormatIndex", function() { return getRightFormatIndex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLeftFormatIndex", function() { return getLeftFormatIndex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearRange", function() { return clearRange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearNext", function() { return clearNext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearPrev", function() { return clearPrev; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertString", function() { return insertString; });
var DEFAULT_MASK_FORMAT_CHARS = {
    '9': /[0-9]/,
    a: /[a-zA-Z]/,
    '*': /[a-zA-Z0-9]/
};
/**
 * Takes in the mask string and the formatCharacters and returns an array of MaskValues
 * Example:
 * mask = 'Phone Number: (999) - 9999'
 * return = [
 *    { value: undefined, displayIndex: 16, format: /[0-9]/ },
 *    { value: undefined, displayIndex: 17, format: /[0-9]/ },
 *    { value: undefined, displayIndex: 18, format: /[0-9]/ },
 *    { value: undefined, displayIndex: 22, format: /[0-9]/ },
 * ]
 *
 * @param mask The string use to define the format of the displayed maskedValue.
 * @param formatChars An object defining how certain characters in the mask should accept input.
 */
function parseMask(mask, formatChars) {
    if (formatChars === void 0) { formatChars = DEFAULT_MASK_FORMAT_CHARS; }
    if (!mask) {
        return [];
    }
    var maskCharData = [];
    // Count the escape characters in the mask string.
    var escapedChars = 0;
    for (var i = 0; i + escapedChars < mask.length; i++) {
        var maskChar = mask.charAt(i + escapedChars);
        if (maskChar === '\\') {
            escapedChars++;
        }
        else {
            // Check if the maskChar is a format character.
            var maskFormat = formatChars[maskChar];
            if (maskFormat) {
                maskCharData.push({
                    /**
                     * Do not add escapedChars to the displayIndex.
                     * The index refers to a position in the mask's displayValue.
                     * Since the backslashes don't appear in the displayValue,
                     * we do not add them to the charData displayIndex.
                     */
                    displayIndex: i,
                    format: maskFormat
                });
            }
        }
    }
    return maskCharData;
}
/**
 * Takes in the mask string, an array of MaskValues, and the maskCharacter
 * returns the mask string formatted with the input values and maskCharacter.
 * If the maskChar is undefined, the maskDisplay is truncated to the last filled format character.
 * Example:
 * mask = 'Phone Number: (999) 999 - 9999'
 * maskCharData = '12345'
 * maskChar = '_'
 * return = 'Phone Number: (123) 45_ - ___'
 *
 * Example:
 * mask = 'Phone Number: (999) 999 - 9999'
 * value = '12345'
 * maskChar = undefined
 * return = 'Phone Number: (123) 45'
 *
 * @param mask The string use to define the format of the displayed maskedValue.
 * @param maskCharData The input values to insert into the mask string for displaying.
 * @param maskChar? A character to display in place of unfilled mask format characters.
 */
function getMaskDisplay(mask, maskCharData, maskChar) {
    var maskDisplay = mask;
    if (!maskDisplay) {
        return '';
    }
    // Remove all backslashes
    maskDisplay = maskDisplay.replace(/\\/g, '');
    // lastDisplayIndex is is used to truncate the string if necessary.
    var lastDisplayIndex = 0;
    if (maskCharData.length > 0) {
        lastDisplayIndex = maskCharData[0].displayIndex - 1;
    }
    /**
     * For each input value, replace the character in the maskDisplay with the value.
     * If there is no value set for the format character, use the maskChar.
     */
    for (var _i = 0, maskCharData_1 = maskCharData; _i < maskCharData_1.length; _i++) {
        var charData = maskCharData_1[_i];
        var nextChar = ' ';
        if (charData.value) {
            nextChar = charData.value;
            if (charData.displayIndex > lastDisplayIndex) {
                lastDisplayIndex = charData.displayIndex;
            }
        }
        else {
            if (maskChar) {
                nextChar = maskChar;
            }
        }
        // Insert the character into the maskdisplay at its corresponding index
        maskDisplay = maskDisplay.slice(0, charData.displayIndex) + nextChar + maskDisplay.slice(charData.displayIndex + 1);
    }
    // Cut off all mask characters after the last filled format value
    if (!maskChar) {
        maskDisplay = maskDisplay.slice(0, lastDisplayIndex + 1);
    }
    return maskDisplay;
}
/**
 * Get the next format index right of or at a specified index.
 * If no index exists, returns the rightmost index.
 * @param maskCharData
 * @param index
 */
function getRightFormatIndex(maskCharData, index) {
    for (var i = 0; i < maskCharData.length; i++) {
        if (maskCharData[i].displayIndex >= index) {
            return maskCharData[i].displayIndex;
        }
    }
    return maskCharData[maskCharData.length - 1].displayIndex;
}
/**
 * Get the next format index left of a specified index.
 * If no index exists, returns the leftmost index.
 * @param maskCharData
 * @param index
 */
function getLeftFormatIndex(maskCharData, index) {
    for (var i = maskCharData.length - 1; i >= 0; i--) {
        if (maskCharData[i].displayIndex < index) {
            return maskCharData[i].displayIndex;
        }
    }
    return maskCharData[0].displayIndex;
}
/**
 * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.
 * maskCharData is modified inline and also returned.
 * @param maskCharData
 * @param selectionStart
 * @param selectionCount
 */
function clearRange(maskCharData, selectionStart, selectionCount) {
    for (var i = 0; i < maskCharData.length; i++) {
        if (maskCharData[i].displayIndex >= selectionStart) {
            if (maskCharData[i].displayIndex >= selectionStart + selectionCount) {
                break;
            }
            maskCharData[i].value = undefined;
        }
    }
    return maskCharData;
}
/**
 * Deletes the input character at or after a specified index and returns the new array of charData
 * maskCharData is modified inline and also returned.
 * @param maskCharData
 * @param selectionStart
 */
function clearNext(maskCharData, selectionStart) {
    for (var i = 0; i < maskCharData.length; i++) {
        if (maskCharData[i].displayIndex >= selectionStart) {
            maskCharData[i].value = undefined;
            break;
        }
    }
    return maskCharData;
}
/**
 * Deletes the input character before a specified index and returns the new array of charData
 * maskCharData is modified inline and also returned.
 * @param maskCharData
 * @param selectionStart
 */
function clearPrev(maskCharData, selectionStart) {
    for (var i = maskCharData.length - 1; i >= 0; i--) {
        if (maskCharData[i].displayIndex < selectionStart) {
            maskCharData[i].value = undefined;
            break;
        }
    }
    return maskCharData;
}
/**
 * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.
 * Modifies the maskCharData inplace with the passed string and returns the display index of the
 * next format character after the inserted string.
 * @param maskCharData
 * @param selectionStart
 * @param selectionCount
 * @return The displayIndex of the next format character
 */
function insertString(maskCharData, selectionStart, newString) {
    var stringIndex = 0;
    var nextIndex = 0;
    var isStringInserted = false;
    // Iterate through _maskCharData finding values with a displayIndex after the specified range start
    for (var i = 0; i < maskCharData.length && stringIndex < newString.length; i++) {
        if (maskCharData[i].displayIndex >= selectionStart) {
            isStringInserted = true;
            nextIndex = maskCharData[i].displayIndex;
            // Find the next character in the newString that matches the format
            while (stringIndex < newString.length) {
                // If the character matches the format regexp, set the maskCharData to the new character
                if (maskCharData[i].format.test(newString.charAt(stringIndex))) {
                    maskCharData[i].value = newString.charAt(stringIndex++);
                    // Set the nextIndex to the display index of the next mask format character.
                    if (i + 1 < maskCharData.length) {
                        nextIndex = maskCharData[i + 1].displayIndex;
                    }
                    else {
                        nextIndex++;
                    }
                    break;
                }
                stringIndex++;
            }
        }
    }
    return isStringInserted ? nextIndex : selectionStart;
}


/***/ }),

/***/ "./lib/components/TextField/TextField.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFieldBase", function() { return TextFieldBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Icon.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["classNamesFunction"])();
var DEFAULT_STATE_VALUE = '';
var COMPONENT_NAME = 'TextField';
var TextFieldBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TextFieldBase, _super);
    function TextFieldBase(props) {
        var _this = _super.call(this, props) || this;
        _this._textElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onFocus = function (ev) {
            if (_this.props.onFocus) {
                _this.props.onFocus(ev);
            }
            _this.setState({ isFocused: true }, function () {
                if (_this.props.validateOnFocusIn) {
                    _this._validate(_this.value);
                }
            });
        };
        _this._onBlur = function (ev) {
            if (_this.props.onBlur) {
                _this.props.onBlur(ev);
            }
            _this.setState({ isFocused: false }, function () {
                if (_this.props.validateOnFocusOut) {
                    _this._validate(_this.value);
                }
            });
        };
        _this._onRenderLabel = function (props) {
            var label = props.label, required = props.required;
            // IProcessedStyleSet definition requires casting for what Label expects as its styles prop
            var labelStyles = _this._classNames.subComponentStyles
                ? _this._classNames.subComponentStyles.label
                : undefined;
            if (label) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_2__["Label"], { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));
            }
            return null;
        };
        _this._onRenderDescription = function (props) {
            if (props.description) {
                return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: _this._classNames.description }, props.description);
            }
            return null;
        };
        _this._onInputChange = function (event) {
            // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,
            // which have *probably* been fixed now:
            // - https://github.com/OfficeDev/office-ui-fabric-react/issues/744 (likely fixed)
            // - https://github.com/OfficeDev/office-ui-fabric-react/issues/824 (confirmed fixed)
            // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for
            // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.
            var element = event.target;
            var value = element.value;
            // Ignore this event if the value is undefined (in case one of the IE bugs comes back)
            if (value === undefined || value === _this._lastChangeValue) {
                return;
            }
            _this._lastChangeValue = value;
            // This is so developers can access the event properties in asynchronous callbacks
            // https://reactjs.org/docs/events.html#event-pooling
            event.persist();
            var isSameValue;
            _this.setState(function (prevState, props) {
                var prevValue = _getValue(props, prevState) || '';
                isSameValue = value === prevValue;
                // Avoid doing unnecessary work when the value has not changed.
                if (isSameValue) {
                    return null;
                }
                // ONLY if this is an uncontrolled component, update the displayed value.
                // (Controlled components must update the `value` prop from `onChange`.)
                return _this._isControlled ? null : { uncontrolledValue: value };
            }, function () {
                // If the value actually changed, call onChange (for either controlled or uncontrolled)
                var onChange = _this.props.onChange;
                if (!isSameValue && onChange) {
                    onChange(event, value);
                }
            });
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["initializeComponentRef"])(_this);
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_4__["Async"](_this);
        if (true) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["warnMutuallyExclusive"])(COMPONENT_NAME, props, {
                errorMessage: 'onGetErrorMessage'
            });
        }
        _this._fallbackId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getId"])(COMPONENT_NAME);
        _this._descriptionId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getId"])(COMPONENT_NAME + 'Description');
        _this._labelId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getId"])(COMPONENT_NAME + 'Label');
        _this._warnControlledUsage();
        var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;
        if (typeof defaultValue === 'number') {
            // This isn't allowed per the props, but happens anyway.
            defaultValue = String(defaultValue);
        }
        _this.state = {
            uncontrolledValue: _this._isControlled ? undefined : defaultValue,
            isFocused: false,
            errorMessage: ''
        };
        _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);
        _this._lastValidation = 0;
        return _this;
    }
    Object.defineProperty(TextFieldBase.prototype, "value", {
        /**
         * Gets the current value of the text field.
         */
        get: function () {
            return _getValue(this.props, this.state);
        },
        enumerable: true,
        configurable: true
    });
    TextFieldBase.prototype.componentDidMount = function () {
        this._adjustInputHeight();
        if (this.props.validateOnLoad) {
            this._validate(this.value);
        }
    };
    TextFieldBase.prototype.componentWillUnmount = function () {
        this._async.dispose();
    };
    TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {
        return {
            selection: [this.selectionStart, this.selectionEnd]
        };
    };
    TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {
        var props = this.props;
        var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;
        var start = selection[0], end = selection[1];
        if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {
            // The text field has just changed between single- and multi-line, so we need to reset focus
            // and selection/cursor.
            this.focus();
            if (start !== null && end !== null && start >= 0 && end >= 0) {
                this.setSelectionRange(start, end);
            }
        }
        var prevValue = _getValue(prevProps, prevState);
        var value = this.value;
        if (prevValue !== value) {
            // Handle controlled/uncontrolled warnings and status
            this._warnControlledUsage(prevProps);
            // Clear error message if needed
            // TODO: is there any way to do this without an extra render?
            if (this.state.errorMessage && !props.errorMessage) {
                this.setState({ errorMessage: '' });
            }
            // Adjust height if needed based on new value
            this._adjustInputHeight();
            // Reset the record of the last value seen by a change/input event
            this._lastChangeValue = undefined;
            // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.
            // This seems a bit odd and hard to integrate with the new approach.
            // (Starting to think we should just put the validation logic in a separate wrapper component...?)
            if (_shouldValidateAllChanges(props)) {
                this._delayedValidate(value);
            }
        }
    };
    TextFieldBase.prototype.render = function () {
        var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;
        var isFocused = this.state.isFocused;
        var errorMessage = this._errorMessage;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            disabled: disabled,
            focused: isFocused,
            required: required,
            multiline: multiline,
            hasLabel: !!label,
            hasErrorMessage: !!errorMessage,
            borderless: borderless,
            resizable: resizable,
            hasIcon: !!iconProps,
            underlined: underlined,
            inputClassName: inputClassName,
            autoAdjustHeight: autoAdjustHeight
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.root },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.wrapper },
                onRenderLabel(this.props, this._onRenderLabel),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.fieldGroup },
                    (prefix !== undefined || this.props.onRenderPrefix) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.prefix }, onRenderPrefix(this.props, this._onRenderPrefix))),
                    multiline ? this._renderTextArea() : this._renderInput(),
                    iconProps && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Icon__WEBPACK_IMPORTED_MODULE_3__["Icon"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.icon }, iconProps)),
                    (suffix !== undefined || this.props.onRenderSuffix) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.suffix }, onRenderSuffix(this.props, this._onRenderSuffix))))),
            this._isDescriptionAvailable && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: this._descriptionId },
                onRenderDescription(this.props, this._onRenderDescription),
                errorMessage && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { role: "alert" },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Utilities__WEBPACK_IMPORTED_MODULE_4__["DelayedRender"], null,
                        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { className: this._classNames.errorMessage },
                            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { "data-automation-id": "error-message" }, errorMessage)))))))));
    };
    /**
     * Sets focus on the text field
     */
    TextFieldBase.prototype.focus = function () {
        if (this._textElement.current) {
            this._textElement.current.focus();
        }
    };
    /**
     * Blurs the text field.
     */
    TextFieldBase.prototype.blur = function () {
        if (this._textElement.current) {
            this._textElement.current.blur();
        }
    };
    /**
     * Selects the text field
     */
    TextFieldBase.prototype.select = function () {
        if (this._textElement.current) {
            this._textElement.current.select();
        }
    };
    /**
     * Sets the selection start of the text field to a specified value
     */
    TextFieldBase.prototype.setSelectionStart = function (value) {
        if (this._textElement.current) {
            this._textElement.current.selectionStart = value;
        }
    };
    /**
     * Sets the selection end of the text field to a specified value
     */
    TextFieldBase.prototype.setSelectionEnd = function (value) {
        if (this._textElement.current) {
            this._textElement.current.selectionEnd = value;
        }
    };
    Object.defineProperty(TextFieldBase.prototype, "selectionStart", {
        /**
         * Gets the selection start of the text field
         */
        get: function () {
            return this._textElement.current ? this._textElement.current.selectionStart : -1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(TextFieldBase.prototype, "selectionEnd", {
        /**
         * Gets the selection end of the text field
         */
        get: function () {
            return this._textElement.current ? this._textElement.current.selectionEnd : -1;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Sets the start and end positions of a selection in a text field.
     * @param start - Index of the start of the selection.
     * @param end - Index of the end of the selection.
     */
    TextFieldBase.prototype.setSelectionRange = function (start, end) {
        if (this._textElement.current) {
            this._textElement.current.setSelectionRange(start, end);
        }
    };
    TextFieldBase.prototype._warnControlledUsage = function (prevProps) {
        // Show warnings if props are being used in an invalid way
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["warnControlledUsage"])({
            componentId: this._id,
            componentName: COMPONENT_NAME,
            props: this.props,
            oldProps: prevProps,
            valueProp: 'value',
            defaultValueProp: 'defaultValue',
            onChangeProp: 'onChange',
            readOnlyProp: 'readOnly'
        });
        if (this.props.value === null && !this._hasWarnedNullValue) {
            this._hasWarnedNullValue = true;
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["warn"])("Warning: 'value' prop on '" + COMPONENT_NAME + "' should not be null. Consider using an " +
                'empty string to clear the component or undefined to indicate an uncontrolled component.');
        }
    };
    Object.defineProperty(TextFieldBase.prototype, "_id", {
        /** Returns `props.id` if available, or a fallback if not. */
        get: function () {
            return this.props.id || this._fallbackId;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(TextFieldBase.prototype, "_isControlled", {
        get: function () {
            return Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["isControlled"])(this.props, 'value');
        },
        enumerable: true,
        configurable: true
    });
    TextFieldBase.prototype._onRenderPrefix = function (props) {
        var prefix = props.prefix;
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { style: { paddingBottom: '1px' } }, prefix);
    };
    TextFieldBase.prototype._onRenderSuffix = function (props) {
        var suffix = props.suffix;
        return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { style: { paddingBottom: '1px' } }, suffix);
    };
    Object.defineProperty(TextFieldBase.prototype, "_errorMessage", {
        /**
         * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.
         *
         * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.
         * - If we have done the validation and there is validation error, errorMessage is the validation error message.
         */
        get: function () {
            var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;
            return errorMessage || '';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(TextFieldBase.prototype, "_isDescriptionAvailable", {
        /**
         * If a custom description render function is supplied then treat description as always available.
         * Otherwise defer to the presence of description or error message text.
         */
        get: function () {
            var props = this.props;
            return !!(props.onRenderDescription || props.description || this._errorMessage);
        },
        enumerable: true,
        configurable: true
    });
    TextFieldBase.prototype._renderTextArea = function () {
        var textAreaProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_4__["textAreaProperties"], [
            'defaultValue'
        ]);
        var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("textarea", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, "aria-labelledby": ariaLabelledBy, "aria-describedby": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], "aria-invalid": !!this._errorMessage, "aria-label": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));
    };
    TextFieldBase.prototype._renderInput = function () {
        var inputProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_4__["inputProperties"], ['defaultValue']);
        var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ type: 'text', id: this._id, "aria-labelledby": ariaLabelledBy }, inputProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, "aria-label": this.props.ariaLabel, "aria-describedby": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], "aria-invalid": !!this._errorMessage, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));
    };
    TextFieldBase.prototype._validate = function (value) {
        var _this = this;
        // In case _validate is called again while validation promise is executing
        if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {
            return;
        }
        this._latestValidateValue = value;
        var onGetErrorMessage = this.props.onGetErrorMessage;
        var result = onGetErrorMessage && onGetErrorMessage(value || '');
        if (result !== undefined) {
            if (typeof result === 'string' || !('then' in result)) {
                this.setState({ errorMessage: result });
                this._notifyAfterValidate(value, result);
            }
            else {
                var currentValidation_1 = ++this._lastValidation;
                result.then(function (errorMessage) {
                    if (currentValidation_1 === _this._lastValidation) {
                        _this.setState({ errorMessage: errorMessage });
                    }
                    _this._notifyAfterValidate(value, errorMessage);
                });
            }
        }
        else {
            this._notifyAfterValidate(value, '');
        }
    };
    TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {
        if (value === this.value && this.props.onNotifyValidationResult) {
            this.props.onNotifyValidationResult(errorMessage, value);
        }
    };
    TextFieldBase.prototype._adjustInputHeight = function () {
        if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {
            var textField = this._textElement.current;
            textField.style.height = '';
            textField.style.height = textField.scrollHeight + 'px';
        }
    };
    TextFieldBase.defaultProps = {
        resizable: true,
        deferredValidationTime: 200,
        validateOnLoad: true
    };
    return TextFieldBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));

/** Get the value from the given state and props (converting from number to string if needed) */
function _getValue(props, state) {
    var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;
    if (typeof value === 'number') {
        // not allowed per typings, but happens anyway
        return String(value);
    }
    return value;
}
/**
 * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.
 * Otherwise, validation should run on every change.
 */
function _shouldValidateAllChanges(props) {
    return !(props.validateOnFocusIn || props.validateOnFocusOut);
}


/***/ }),

/***/ "./lib/components/TextField/TextField.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return TextField; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TextField_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/TextField/TextField.base.js");
/* harmony import */ var _TextField_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TextField/TextField.styles.js");



var TextField = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_TextField_base__WEBPACK_IMPORTED_MODULE_1__["TextFieldBase"], _TextField_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'TextField'
});


/***/ }),

/***/ "./lib/components/TextField/TextField.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var globalClassNames = {
    root: 'ms-TextField',
    description: 'ms-TextField-description',
    errorMessage: 'ms-TextField-errorMessage',
    field: 'ms-TextField-field',
    fieldGroup: 'ms-TextField-fieldGroup',
    prefix: 'ms-TextField-prefix',
    suffix: 'ms-TextField-suffix',
    wrapper: 'ms-TextField-wrapper',
    multiline: 'ms-TextField--multiline',
    borderless: 'ms-TextField--borderless',
    underlined: 'ms-TextField--underlined',
    unresizable: 'ms-TextField--unresizable',
    required: 'is-required',
    disabled: 'is-disabled',
    active: 'is-active'
};
function getLabelStyles(props) {
    var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;
    var palette = theme.palette, fonts = theme.fonts;
    return function () {
        var _a;
        return ({
            root: [
                underlined &&
                    disabled && {
                    color: palette.neutralTertiary
                },
                underlined && {
                    fontSize: fonts.medium.fontSize,
                    marginRight: 8,
                    paddingLeft: 12,
                    paddingRight: 0,
                    lineHeight: '22px',
                    height: 32
                },
                underlined &&
                    focused && {
                    selectors: (_a = {},
                        _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            height: 31 // -1px to prevent jumpiness in HC with the increased border-width to 2px
                        },
                        _a)
                }
            ]
        });
    };
}
function getStyles(props) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight;
    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(globalClassNames, theme);
    var fieldPrefixSuffix = {
        background: semanticColors.disabledBackground,
        color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,
        display: 'flex',
        alignItems: 'center',
        padding: '0 10px',
        lineHeight: 1,
        whiteSpace: 'nowrap',
        flexShrink: 0
    };
    // placeholder style constants
    var placeholderStyles = [
        fonts.medium,
        {
            color: semanticColors.inputPlaceholderText,
            opacity: 1
        }
    ];
    var disabledPlaceholderStyles = {
        color: semanticColors.disabledText
    };
    return {
        root: [
            classNames.root,
            fonts.medium,
            required && classNames.required,
            disabled && classNames.disabled,
            focused && classNames.active,
            multiline && classNames.multiline,
            borderless && classNames.borderless,
            underlined && classNames.underlined,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                position: 'relative'
            },
            className
        ],
        wrapper: [
            classNames.wrapper,
            underlined && {
                display: 'flex',
                borderBottomWidth: 1,
                borderBottomStyle: 'solid',
                borderBottomColor: semanticColors.inputBorder,
                width: '100%'
            },
            hasErrorMessage &&
                underlined &&
                !disabled && {
                borderBottomColor: semanticColors.errorText,
                selectors: {
                    ':hover': {
                        borderBottomColor: semanticColors.errorText,
                        selectors: (_a = {},
                            _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                borderBottomColor: 'Highlight'
                            },
                            _a)
                    }
                }
            },
            underlined &&
                disabled && {
                borderBottomColor: semanticColors.disabledBackground
            },
            underlined &&
                !disabled &&
                !focused &&
                !hasErrorMessage && {
                selectors: {
                    ':hover': {
                        borderBottomColor: semanticColors.inputBorderHovered,
                        selectors: (_b = {},
                            _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                borderBottomColor: 'Highlight'
                            },
                            _b)
                    }
                }
            },
            underlined &&
                focused && {
                borderBottomColor: !hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText,
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderBottomWidth: 2,
                        borderBottomColor: 'Highlight'
                    },
                    _c)
            }
        ],
        fieldGroup: [
            classNames.fieldGroup,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                border: "1px solid " + semanticColors.inputBorder,
                borderRadius: effects.roundedCorner2,
                background: semanticColors.inputBackground,
                cursor: 'text',
                height: 32,
                display: 'flex',
                flexDirection: 'row',
                alignItems: 'stretch',
                position: 'relative',
                selectors: {
                    ':hover': {
                        selectors: (_d = {},
                            _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                borderColor: 'Highlight'
                            },
                            _d)
                    }
                }
            },
            multiline && {
                minHeight: '60px',
                height: 'auto',
                display: 'flex'
            },
            borderless && {
                border: 'none'
            },
            !focused &&
                !disabled && {
                selectors: {
                    ':hover': {
                        borderColor: semanticColors.inputBorderHovered
                    }
                }
            },
            focused && {
                borderColor: semanticColors.inputFocusBorderAlt,
                selectors: (_e = {},
                    _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderWidth: 2,
                        borderColor: 'Highlight'
                    },
                    _e)
            },
            disabled && {
                backgroundColor: semanticColors.disabledBackground,
                borderColor: semanticColors.disabledBackground,
                cursor: 'default'
            },
            underlined && {
                flex: '1 1 0px',
                border: 'none',
                textAlign: 'left'
            },
            underlined &&
                focused && {
                selectors: (_f = {},
                    _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        height: 31 // -1px to prevent jumpiness in HC with the increased border-width to 2px
                    },
                    _f)
            },
            underlined &&
                disabled && {
                backgroundColor: 'transparent'
            },
            hasErrorMessage && {
                borderColor: semanticColors.errorText,
                selectors: {
                    '&:focus, &:hover': {
                        borderColor: semanticColors.errorText
                    }
                }
            },
            hasErrorMessage &&
                focused && {
                borderColor: semanticColors.errorText
            },
            !hasLabel &&
                required && {
                selectors: (_g = {
                        ':after': {
                            content: "'*'",
                            color: semanticColors.errorText,
                            position: 'absolute',
                            top: -5,
                            right: -10
                        }
                    },
                    _g[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        selectors: {
                            ':after': {
                                right: -14 // moving the * 4 pixel to right to alleviate border clipping in HC mode.
                            }
                        }
                    },
                    _g)
            }
        ],
        field: [
            fonts.medium,
            classNames.field,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["normalize"],
            {
                borderRadius: 0,
                border: 'none',
                background: 'none',
                backgroundColor: 'transparent',
                color: semanticColors.inputText,
                padding: '0 8px',
                width: '100%',
                minWidth: 0,
                textOverflow: 'ellipsis',
                outline: 0,
                selectors: {
                    '&:active, &:focus, &:hover': { outline: 0 },
                    '::-ms-clear': {
                        display: 'none'
                    }
                }
            },
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(placeholderStyles),
            multiline &&
                !resizable && [
                classNames.unresizable,
                {
                    resize: 'none'
                }
            ],
            multiline && {
                minHeight: 'inherit',
                lineHeight: 17,
                flexGrow: 1,
                paddingTop: 6,
                paddingBottom: 6,
                overflow: 'auto',
                width: '100%'
            },
            multiline &&
                autoAdjustHeight && {
                overflow: 'hidden'
            },
            hasIcon && {
                paddingRight: 24
            },
            multiline &&
                hasIcon && {
                paddingRight: 40
            },
            disabled && [
                {
                    backgroundColor: semanticColors.disabledBackground,
                    borderColor: 'transparent',
                    color: semanticColors.disabledText
                },
                Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"])(disabledPlaceholderStyles)
            ],
            underlined && {
                textAlign: 'left'
            },
            focused &&
                !borderless && {
                selectors: (_h = {},
                    _h[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        paddingLeft: 11,
                        paddingRight: 11
                    },
                    _h)
            },
            focused &&
                multiline &&
                !borderless && {
                selectors: (_j = {},
                    _j[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        paddingTop: 4 // take into consideration the 2px increased border-width (not when borderless).
                    },
                    _j)
            },
            inputClassName
        ],
        icon: [
            multiline && {
                paddingRight: 24,
                paddingBottom: 8,
                alignItems: 'flex-end'
            },
            {
                pointerEvents: 'none',
                position: 'absolute',
                bottom: 5,
                right: 8,
                top: 'auto',
                fontSize: _Styling__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"].medium,
                lineHeight: 18
            },
            disabled && {
                color: semanticColors.disabledText
            }
        ],
        description: [
            classNames.description,
            {
                color: semanticColors.bodySubtext,
                fontSize: fonts.xSmall.fontSize
            }
        ],
        errorMessage: [
            classNames.errorMessage,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"].slideDownIn20,
            fonts.small,
            {
                color: semanticColors.errorText,
                margin: 0,
                paddingTop: 5,
                display: 'flex',
                alignItems: 'center'
            }
        ],
        prefix: [classNames.prefix, fieldPrefixSuffix],
        suffix: [classNames.suffix, fieldPrefixSuffix],
        subComponentStyles: {
            label: getLabelStyles(props)
        }
    };
}


/***/ }),

/***/ "./lib/components/TextField/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/TextField/TextField.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return _TextField__WEBPACK_IMPORTED_MODULE_0__["TextField"]; });

/* harmony import */ var _TextField_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/TextField/TextField.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFieldBase", function() { return _TextField_base__WEBPACK_IMPORTED_MODULE_1__["TextFieldBase"]; });

/* harmony import */ var _MaskedTextField_MaskedTextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/TextField/MaskedTextField/MaskedTextField.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_CHAR", function() { return _MaskedTextField_MaskedTextField__WEBPACK_IMPORTED_MODULE_2__["DEFAULT_MASK_CHAR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextField", function() { return _MaskedTextField_MaskedTextField__WEBPACK_IMPORTED_MODULE_2__["MaskedTextField"]; });






/***/ }),

/***/ "./lib/components/ThemeGenerator/ThemeGenerator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeGenerator", function() { return ThemeGenerator; });
/* harmony import */ var _utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* harmony import */ var _utilities_color_shades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/shades.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var ThemeGenerator = /** @class */ (function () {
    function ThemeGenerator() {
    }
    /* Sets an IThemeSlotRule to the given color and cascades it to the rest of the theme, updating other IThemeSlotRules in the theme that
     *   inherit from that color.
     * isInverted: whether it's a dark theme or not, which affects the algorithm used to generate shades
     * isCustomization should be true only if it's a user action, and indicates overwriting the slot's inheritance (if any)
     * overwriteCustomColor: a slot could have a generated color based on its inheritance rules (isCustomized is false), or a custom color
                              based on user input (isCustomized is true), this bool tells us whether to override existing customized colors */
    ThemeGenerator.setSlot = function (rule, color, isInverted, isCustomization, overwriteCustomColor) {
        if (isInverted === void 0) { isInverted = false; }
        if (isCustomization === void 0) { isCustomization = false; }
        if (overwriteCustomColor === void 0) { overwriteCustomColor = true; }
        if (!rule.color && rule.value) {
            // not a color rule
            return;
        }
        if (overwriteCustomColor) {
            var colorAsIColor = void 0;
            if (typeof color === 'string') {
                colorAsIColor = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_0__["getColorFromString"])(color); // the ! is a lie here but we'll verify it in the next line
                if (!colorAsIColor) {
                    throw 'color is invalid in setSlot(): ' + color;
                }
            }
            else {
                colorAsIColor = color;
            }
            ThemeGenerator._setSlot(rule, colorAsIColor, isInverted, isCustomization, overwriteCustomColor);
        }
        else if (rule.color) {
            ThemeGenerator._setSlot(rule, rule.color, isInverted, isCustomization, overwriteCustomColor);
        }
    };
    /* Sets the color of each slot based on its rule. Slots that don't inherit must have a color already.
     * If this completes without error, then the theme is ready to use. (All slots will have a color.)
     * setSlot() can be called before this, but this must be called before getThemeAs*().
     * Does not override colors of rules where isCustomized is true (i.e. doesn't override existing customizations).
     */
    ThemeGenerator.insureSlots = function (slotRules, isInverted) {
        // Get all the "root" rules, the ones which don't inherit. Then "set" them to trigger updating dependent slots.
        for (var ruleName in slotRules) {
            if (slotRules.hasOwnProperty(ruleName)) {
                var rule = slotRules[ruleName];
                if (!rule.inherits && !rule.value) {
                    if (!rule.color) {
                        throw 'A color slot rule that does not inherit must provide its own color.';
                    }
                    ThemeGenerator._setSlot(rule, rule.color, isInverted, false, false);
                }
            }
        }
    };
    /* Gets the JSON-formatted blob that describes the theme, usable with the REST request endpoints
     * { [theme slot name as string] : [color as string],
     *  "tokenName": "#f00f00",
     *  "tokenName2": "#ba2ba2",
     *   ... }
     */
    ThemeGenerator.getThemeAsJson = function (slotRules) {
        var theme = {};
        for (var ruleName in slotRules) {
            if (slotRules.hasOwnProperty(ruleName)) {
                var rule = slotRules[ruleName];
                theme[rule.name] = rule.color ? rule.color.str : rule.value || '';
            }
        }
        return theme;
    };
    /*
     * Gets code-formatted load theme blob that can be copy and pasted.
     */
    ThemeGenerator.getThemeAsCode = function (slotRules) {
        var attributeTemplate = "    {0}: '{1}',\n";
        var output = '';
        output += 'loadTheme({\n  palette: {\n';
        for (var ruleName in slotRules) {
            if (slotRules.hasOwnProperty(ruleName)) {
                var rule = slotRules[ruleName];
                var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);
                var outputColor = rule.color ? '#' + rule.color.hex : rule.value || '';
                output += Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(attributeTemplate, camelCasedName, outputColor);
            }
        }
        output += '  }\n});';
        return output;
    };
    /* Gets the theme as a list of SASS variables that can be used in code
     * $tokenName: "[theme:tokenName, default:#f00f00]";
     * $tokenName2: "[theme:tokenName2, default:#ba2ba2]";
     * ...
     */
    ThemeGenerator.getThemeAsSass = function (slotRules) {
        var sassVarTemplate = '${0}Color: "[theme: {1}, default: {2}]";\n';
        var output = '';
        for (var ruleName in slotRules) {
            if (slotRules.hasOwnProperty(ruleName)) {
                var rule = slotRules[ruleName];
                var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);
                output += Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(sassVarTemplate, camelCasedName, camelCasedName, rule.color ? rule.color.str : rule.value || '');
            }
        }
        return output;
    };
    /* Gets the theme formatted for PowerShell scripts
     * @{
     * "tokenName" = "#f00f00";
     * "tokenName2" = "#ba2ba2";
     * ...
     * }
     */
    ThemeGenerator.getThemeForPowerShell = function (slotRules) {
        var psVarTemplate = '"{0}" = "{1}";\n';
        var output = '';
        for (var ruleName in slotRules) {
            if (slotRules.hasOwnProperty(ruleName)) {
                var rule = slotRules[ruleName];
                if (rule.value) {
                    // skip this one, it's not a color
                    continue;
                }
                var camelCasedName = rule.name.charAt(0).toLowerCase() + rule.name.slice(1);
                var outputColor = rule.color ? '#' + rule.color.hex : rule.value || '';
                // powershell endpoint uses the RGBA format
                if (rule.color && rule.color.a && rule.color.a !== 100) {
                    outputColor += String(rule.color.a.toString(16));
                }
                output += Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["format"])(psVarTemplate, camelCasedName, outputColor);
            }
        }
        return '@{\n' + output + '}';
    };
    /* Sets the given slot's color to the appropriate color, shading it if necessary.
       Then, iterates through all other rules (that are this rule's dependents) to update them accordingly.
       isCustomization=true means it's a user provided color, set it to that raw color
       isCustomization=false means the rule it's inheriting from changed, so updated using asShade */
    ThemeGenerator._setSlot = function (rule, color, isInverted, isCustomization, overwriteCustomColor) {
        if (overwriteCustomColor === void 0) { overwriteCustomColor = true; }
        if (!rule.color && rule.value) {
            // not a color rule
            return;
        }
        if (overwriteCustomColor || !rule.color || !rule.isCustomized || !rule.inherits) {
            // set the rule's color under these conditions
            if ((overwriteCustomColor || !rule.isCustomized) && !isCustomization && rule.inherits && Object(_utilities_color_shades__WEBPACK_IMPORTED_MODULE_1__["isValidShade"])(rule.asShade)) {
                // it's inheriting by shade
                if (rule.isBackgroundShade) {
                    rule.color = Object(_utilities_color_shades__WEBPACK_IMPORTED_MODULE_1__["getBackgroundShade"])(color, rule.asShade, isInverted);
                }
                else {
                    rule.color = Object(_utilities_color_shades__WEBPACK_IMPORTED_MODULE_1__["getShade"])(color, rule.asShade, isInverted);
                }
                rule.isCustomized = false;
            }
            else {
                rule.color = color;
                rule.isCustomized = true;
            }
            // then update dependent colors
            for (var _i = 0, _a = rule.dependentRules; _i < _a.length; _i++) {
                var ruleToUpdate = _a[_i];
                ThemeGenerator._setSlot(ruleToUpdate, rule.color, isInverted, false, overwriteCustomColor);
            }
        }
    };
    return ThemeGenerator;
}());



/***/ }),

/***/ "./lib/components/ThemeGenerator/ThemeRulesStandard.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseSlots", function() { return BaseSlots; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FabricSlots", function() { return FabricSlots; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SemanticColorSlots", function() { return SemanticColorSlots; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "themeRulesStandardCreator", function() { return themeRulesStandardCreator; });
/* harmony import */ var _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/shades.js");
/* harmony import */ var _utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



/* This is the set of rules for our default theme.
   We start with three base slots, defining the background, foreground (text), and
   primary color (sometimes called theme color). Each Fabric slot is generated from
   shades (or tints) of one of those three, creating the Fabric palette.
   Then, we have semantic slots, the new thing intended to eventually replace the
   Fabric palette. The semantic slots inherit from the Fabric palette. */
/* The most minimal set of slots we start with. All other ones can be generated based on rules.
 * This is not so much an enum as it is a list. The enum is used to insure "type"-safety.
 * For now, we are only dealing with color. */
var BaseSlots;
(function (BaseSlots) {
    BaseSlots[BaseSlots["primaryColor"] = 0] = "primaryColor";
    BaseSlots[BaseSlots["backgroundColor"] = 1] = "backgroundColor";
    BaseSlots[BaseSlots["foregroundColor"] = 2] = "foregroundColor";
})(BaseSlots || (BaseSlots = {}));
/* The original Fabric palette, only for back-compat. */
var FabricSlots;
(function (FabricSlots) {
    FabricSlots[FabricSlots["themePrimary"] = 0] = "themePrimary";
    FabricSlots[FabricSlots["themeLighterAlt"] = 1] = "themeLighterAlt";
    FabricSlots[FabricSlots["themeLighter"] = 2] = "themeLighter";
    FabricSlots[FabricSlots["themeLight"] = 3] = "themeLight";
    FabricSlots[FabricSlots["themeTertiary"] = 4] = "themeTertiary";
    FabricSlots[FabricSlots["themeSecondary"] = 5] = "themeSecondary";
    FabricSlots[FabricSlots["themeDarkAlt"] = 6] = "themeDarkAlt";
    FabricSlots[FabricSlots["themeDark"] = 7] = "themeDark";
    FabricSlots[FabricSlots["themeDarker"] = 8] = "themeDarker";
    FabricSlots[FabricSlots["neutralLighterAlt"] = 9] = "neutralLighterAlt";
    FabricSlots[FabricSlots["neutralLighter"] = 10] = "neutralLighter";
    FabricSlots[FabricSlots["neutralLight"] = 11] = "neutralLight";
    FabricSlots[FabricSlots["neutralQuaternaryAlt"] = 12] = "neutralQuaternaryAlt";
    FabricSlots[FabricSlots["neutralQuaternary"] = 13] = "neutralQuaternary";
    FabricSlots[FabricSlots["neutralTertiaryAlt"] = 14] = "neutralTertiaryAlt";
    FabricSlots[FabricSlots["neutralTertiary"] = 15] = "neutralTertiary";
    // deprecated: neutralSecondaryAlt, // BaseSlots.foregroundColor, Shade[Shade.Shade4]);
    FabricSlots[FabricSlots["neutralSecondary"] = 16] = "neutralSecondary";
    FabricSlots[FabricSlots["neutralPrimaryAlt"] = 17] = "neutralPrimaryAlt";
    FabricSlots[FabricSlots["neutralPrimary"] = 18] = "neutralPrimary";
    FabricSlots[FabricSlots["neutralDark"] = 19] = "neutralDark";
    FabricSlots[FabricSlots["black"] = 20] = "black";
    FabricSlots[FabricSlots["white"] = 21] = "white"; // BaseSlots.backgroundColor, Shade[Shade.Unshaded]);
})(FabricSlots || (FabricSlots = {}));
/* List of all the semantic color slots for this theme.
 * This is not so much an enum as it is a list. The enum is used to insure "type"-safety. */
var SemanticColorSlots;
(function (SemanticColorSlots) {
    SemanticColorSlots[SemanticColorSlots["bodyBackground"] = 0] = "bodyBackground";
    SemanticColorSlots[SemanticColorSlots["bodyText"] = 1] = "bodyText";
    SemanticColorSlots[SemanticColorSlots["disabledBackground"] = 2] = "disabledBackground";
    SemanticColorSlots[SemanticColorSlots["disabledText"] = 3] = "disabledText";
})(SemanticColorSlots || (SemanticColorSlots = {}));
function themeRulesStandardCreator() {
    var slotRules = {};
    /*** BASE COLORS and their SHADES */
    // iterate through each base slot and make the SlotRules for those
    Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mapEnumByName"])(BaseSlots, function (baseSlot) {
        // first make the SlotRule for the unshaded base Color
        slotRules[baseSlot] = {
            name: baseSlot,
            isCustomized: true,
            dependentRules: []
        };
        // then make a rule for each shade of this base color, but skip unshaded
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["mapEnumByName"])(_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"], function (shadeName, shadeValue) {
            if (shadeName === _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Unshaded]) {
                return;
            }
            var inherits = slotRules[baseSlot];
            var thisSlotRule = {
                name: baseSlot + shadeName,
                inherits: slotRules[baseSlot],
                asShade: shadeValue,
                isCustomized: false,
                isBackgroundShade: baseSlot === BaseSlots[BaseSlots.backgroundColor] ? true : false,
                dependentRules: []
            };
            slotRules[baseSlot + shadeName] = thisSlotRule;
            inherits.dependentRules.push(thisSlotRule);
            return void 0;
        });
        return void 0;
    });
    // set default colors for the base colors
    slotRules[BaseSlots[BaseSlots.primaryColor]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#0078d4');
    slotRules[BaseSlots[BaseSlots.backgroundColor]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#fff');
    slotRules[BaseSlots[BaseSlots.foregroundColor]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#323130');
    // set default colors for shades (the slot rules were already created above and will be used if the base colors ever change)
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade1]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#eff6fc');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade2]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#deecf9');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade3]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#c7e0f4');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade4]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#71afe5');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade5]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#2b88d8');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade6]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#106ebe');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade7]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#005a9e');
    slotRules[BaseSlots[BaseSlots.primaryColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade8]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#004578');
    // set default colors for shades (the slot rules were already created above and will be used if the base colors ever change)
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade1]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#edebe9');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade2]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#c8c6c4');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade3]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#a19f9d');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade4]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#8a8886');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade5]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#605e5c');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade6]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#3b3a39');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade7]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#201f1e');
    slotRules[BaseSlots[BaseSlots.foregroundColor] + _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"][_utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade8]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#000000');
    function _makeFabricSlotRule(slotName, inheritedBase, inheritedShade, isBackgroundShade) {
        if (isBackgroundShade === void 0) { isBackgroundShade = false; }
        var inherits = slotRules[BaseSlots[inheritedBase]];
        var thisSlotRule = {
            name: slotName,
            inherits: inherits,
            asShade: inheritedShade,
            isCustomized: false,
            isBackgroundShade: isBackgroundShade,
            dependentRules: []
        };
        slotRules[slotName] = thisSlotRule;
        inherits.dependentRules.push(thisSlotRule);
    }
    _makeFabricSlotRule(FabricSlots[FabricSlots.themePrimary], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Unshaded);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeLighterAlt], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade1);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeLighter], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade2);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeLight], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade3);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeTertiary], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade4);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeSecondary], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade5);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeDarkAlt], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade6);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeDark], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade7);
    _makeFabricSlotRule(FabricSlots[FabricSlots.themeDarker], BaseSlots.primaryColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade8);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLighterAlt], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade1, true);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLighter], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade2, true);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralLight], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade3, true);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralQuaternaryAlt], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade4, true);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralQuaternary], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade5, true);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralTertiaryAlt], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade6, true); // bg6 or fg2
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralTertiary], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade3);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralSecondary], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade4);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralPrimaryAlt], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade5);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralPrimary], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Unshaded);
    _makeFabricSlotRule(FabricSlots[FabricSlots.neutralDark], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade7);
    _makeFabricSlotRule(FabricSlots[FabricSlots.black], BaseSlots.foregroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Shade8);
    _makeFabricSlotRule(FabricSlots[FabricSlots.white], BaseSlots.backgroundColor, _utilities_color_shades__WEBPACK_IMPORTED_MODULE_0__["Shade"].Unshaded, true);
    // manually set initial colors for the primary-based Fabric slots to match the default theme
    slotRules[FabricSlots[FabricSlots.themeLighterAlt]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#eff6fc');
    slotRules[FabricSlots[FabricSlots.themeLighter]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#deecf9');
    slotRules[FabricSlots[FabricSlots.themeLight]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#c7e0f4');
    slotRules[FabricSlots[FabricSlots.themeTertiary]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#71afe5');
    slotRules[FabricSlots[FabricSlots.themeSecondary]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#2b88d8');
    slotRules[FabricSlots[FabricSlots.themeDarkAlt]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#106ebe');
    slotRules[FabricSlots[FabricSlots.themeDark]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#005a9e');
    slotRules[FabricSlots[FabricSlots.themeDarker]].color = Object(_utilities_color_getColorFromString__WEBPACK_IMPORTED_MODULE_1__["getColorFromString"])('#004578');
    slotRules[FabricSlots[FabricSlots.themeLighterAlt]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeLighter]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeLight]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeTertiary]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeSecondary]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeDarkAlt]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeDark]].isCustomized = true;
    slotRules[FabricSlots[FabricSlots.themeDarker]].isCustomized = true;
    /*** SEMANTIC SLOTS */
    // This code is commented out for now but left for future semantic color customization.
    // create the SlotRule for a semantic slot
    // function _makeSemanticSlotRule(semanticSlot: SemanticColorSlots, inheritedFabricSlot: FabricSlots): void {
    //   const inherits = slotRules[FabricSlots[inheritedFabricSlot]];
    //   const thisSlotRule = {
    //     name: SemanticColorSlots[semanticSlot],
    //     inherits: slotRules[FabricSlots[inheritedFabricSlot]],
    //     isCustomized: false,
    //     dependentRules: []
    //   };
    //   slotRules[SemanticColorSlots[semanticSlot]] = thisSlotRule;
    //   inherits.dependentRules.push(thisSlotRule);
    // }
    // Basic simple slots
    // _makeSemanticSlotRule(SemanticColorSlots.bodyBackground, FabricSlots.white);
    // _makeSemanticSlotRule(SemanticColorSlots.bodyText, FabricSlots.neutralPrimary);
    return slotRules;
}


/***/ }),

/***/ "./lib/components/ThemeGenerator/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ThemeGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/ThemeGenerator/ThemeGenerator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeGenerator", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_0__["ThemeGenerator"]; });

/* harmony import */ var _ThemeRulesStandard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/ThemeGenerator/ThemeRulesStandard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSlots", function() { return _ThemeRulesStandard__WEBPACK_IMPORTED_MODULE_1__["BaseSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricSlots", function() { return _ThemeRulesStandard__WEBPACK_IMPORTED_MODULE_1__["FabricSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SemanticColorSlots", function() { return _ThemeRulesStandard__WEBPACK_IMPORTED_MODULE_1__["SemanticColorSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "themeRulesStandardCreator", function() { return _ThemeRulesStandard__WEBPACK_IMPORTED_MODULE_1__["themeRulesStandardCreator"]; });





/***/ }),

/***/ "./lib/components/Toggle/Toggle.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleBase", function() { return ToggleBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Label.js");
/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/KeytipData.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var ToggleBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ToggleBase, _super);
    function ToggleBase(props) {
        var _this = _super.call(this, props) || this;
        _this._toggleButton = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._onClick = function (ev) {
            var _a = _this.props, disabled = _a.disabled, checkedProp = _a.checked, onChange = _a.onChange, onChanged = _a.onChanged, onClick = _a.onClick;
            var checked = _this.state.checked;
            if (!disabled) {
                // Only update the state if the user hasn't provided it.
                if (checkedProp === undefined) {
                    _this.setState({
                        checked: !checked
                    });
                }
                if (onChange) {
                    onChange(ev, !checked);
                }
                if (onChanged) {
                    onChanged(!checked);
                }
                if (onClick) {
                    onClick(ev);
                }
            }
        };
        _this._warnMutuallyExclusive({
            checked: 'defaultChecked'
        });
        _this._warnDeprecations({
            onAriaLabel: 'ariaLabel',
            offAriaLabel: undefined,
            onChanged: 'onChange'
        });
        _this.state = {
            checked: !!(props.checked || props.defaultChecked)
        };
        _this._id = props.id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('Toggle');
        return _this;
    }
    ToggleBase.getDerivedStateFromProps = function (nextProps, prevState) {
        if (nextProps.checked === undefined) {
            return null;
        }
        return {
            checked: !!nextProps.checked
        };
    };
    Object.defineProperty(ToggleBase.prototype, "checked", {
        /**
         * Gets the current checked state of the toggle.
         */
        get: function () {
            return this.state.checked;
        },
        enumerable: true,
        configurable: true
    });
    ToggleBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'div' : _b, className = _a.className, theme = _a.theme, disabled = _a.disabled, keytipProps = _a.keytipProps, label = _a.label, ariaLabel = _a.ariaLabel, onAriaLabel = _a.onAriaLabel, offAriaLabel = _a.offAriaLabel, offText = _a.offText, onText = _a.onText, styles = _a.styles, inlineLabel = _a.inlineLabel;
        var checked = this.state.checked;
        var stateText = checked ? onText : offText;
        var badAriaLabel = checked ? onAriaLabel : offAriaLabel;
        var toggleNativeProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["inputProperties"], ['defaultChecked']);
        var classNames = getClassNames(styles, {
            theme: theme,
            className: className,
            disabled: disabled,
            checked: checked,
            inlineLabel: inlineLabel,
            onOffMissing: !onText && !offText
        });
        var labelId = this._id + "-label";
        var stateTextId = this._id + "-stateText";
        // The following properties take priority for what Narrator should read:
        // 1. ariaLabel
        // 2. onAriaLabel (if checked) or offAriaLabel (if not checked)
        // 3. label
        // 4. onText (if checked) or offText (if not checked)
        var labelledById = undefined;
        if (!ariaLabel && !badAriaLabel) {
            if (label) {
                labelledById = labelId;
            }
            else if (stateText) {
                labelledById = stateTextId;
            }
        }
        var ariaRole = this.props.role ? this.props.role : 'switch';
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](RootType, { className: classNames.root, hidden: toggleNativeProps.hidden },
            label && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], { htmlFor: this._id, className: classNames.label, id: labelId }, label)),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.container },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_KeytipData__WEBPACK_IMPORTED_MODULE_4__["KeytipData"], { keytipProps: keytipProps, ariaDescribedBy: toggleNativeProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, toggleNativeProps, keytipAttributes, { className: classNames.pill, disabled: disabled, id: _this._id, type: "button", role: ariaRole, ref: _this._toggleButton, "aria-disabled": disabled, "aria-checked": checked, "aria-label": ariaLabel ? ariaLabel : badAriaLabel, "data-is-focusable": true, onChange: _this._noop, onClick: _this._onClick, "aria-labelledby": labelledById }),
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.thumb }))); }),
                stateText && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Label__WEBPACK_IMPORTED_MODULE_3__["Label"], { htmlFor: this._id, className: classNames.text, id: stateTextId }, stateText)))));
    };
    ToggleBase.prototype.focus = function () {
        if (this._toggleButton.current) {
            this._toggleButton.current.focus();
        }
    };
    ToggleBase.prototype._noop = function () {
        /* no-op */
    };
    return ToggleBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/Toggle/Toggle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return Toggle; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Toggle_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Toggle/Toggle.base.js");
/* harmony import */ var _Toggle_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Toggle/Toggle.styles.js");



var Toggle = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Toggle_base__WEBPACK_IMPORTED_MODULE_1__["ToggleBase"], _Toggle_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'Toggle' });


/***/ }),

/***/ "./lib/components/Toggle/Toggle.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var DEFAULT_PILL_WIDTH = 40;
var DEFAULT_PILL_HEIGHT = 20;
var DEFAULT_THUMB_SIZE = 12;
var getStyles = function (props) {
    var _a, _b, _c, _d, _e, _f, _g;
    var theme = props.theme, className = props.className, disabled = props.disabled, checked = props.checked, inlineLabel = props.inlineLabel, onOffMissing = props.onOffMissing;
    var semanticColors = theme.semanticColors, palette = theme.palette;
    // Tokens
    var pillUncheckedBackground = semanticColors.bodyBackground;
    var pillCheckedBackground = semanticColors.inputBackgroundChecked;
    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered
    var pillCheckedHoveredBackground = palette.themeDark;
    var thumbUncheckedHoveredBackground = palette.neutralDark;
    var pillCheckedDisabledBackground = semanticColors.disabledBodySubtext;
    var thumbBackground = semanticColors.smallInputBorder;
    var thumbCheckedBackground = semanticColors.inputForegroundChecked;
    var thumbDisabledBackground = semanticColors.disabledBodySubtext;
    var thumbCheckedDisabledBackground = semanticColors.disabledBackground;
    var pillBorderColor = semanticColors.smallInputBorder;
    var pillBorderHoveredColor = semanticColors.inputBorderHovered;
    var pillBorderDisabledColor = semanticColors.disabledBodySubtext;
    var textDisabledColor = semanticColors.disabledText;
    return {
        root: [
            'ms-Toggle',
            checked && 'is-checked',
            !disabled && 'is-enabled',
            disabled && 'is-disabled',
            theme.fonts.medium,
            {
                marginBottom: '8px'
            },
            inlineLabel && {
                display: 'flex',
                alignItems: 'center'
            },
            className
        ],
        label: [
            'ms-Toggle-label',
            disabled && {
                color: textDisabledColor,
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText'
                    },
                    _a)
            },
            inlineLabel &&
                !onOffMissing && {
                marginRight: 16
            },
            onOffMissing &&
                inlineLabel && {
                order: 1,
                marginLeft: 16
            },
            inlineLabel && { wordBreak: 'break-all' }
        ],
        container: [
            'ms-Toggle-innerContainer',
            {
                display: 'inline-flex',
                position: 'relative'
            }
        ],
        pill: [
            'ms-Toggle-background',
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -3 }),
            {
                fontSize: '20px',
                boxSizing: 'border-box',
                width: DEFAULT_PILL_WIDTH,
                height: DEFAULT_PILL_HEIGHT,
                borderRadius: DEFAULT_PILL_HEIGHT / 2,
                transition: 'all 0.1s ease',
                border: "1px solid " + pillBorderColor,
                background: pillUncheckedBackground,
                cursor: 'pointer',
                display: 'flex',
                alignItems: 'center',
                padding: '0 3px'
            },
            !disabled && [
                !checked && {
                    selectors: {
                        ':hover': [
                            {
                                borderColor: pillBorderHoveredColor
                            }
                        ],
                        ':hover .ms-Toggle-thumb': [
                            {
                                backgroundColor: thumbUncheckedHoveredBackground,
                                selectors: (_b = {},
                                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                        borderColor: 'Highlight'
                                    },
                                    _b)
                            }
                        ]
                    }
                },
                checked && [
                    {
                        background: pillCheckedBackground,
                        borderColor: 'transparent',
                        justifyContent: 'flex-end'
                    },
                    {
                        selectors: (_c = {
                                ':hover': [
                                    {
                                        backgroundColor: pillCheckedHoveredBackground,
                                        borderColor: 'transparent',
                                        selectors: (_d = {},
                                            _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                                backgroundColor: 'Highlight'
                                            },
                                            _d)
                                    }
                                ]
                            },
                            _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                backgroundColor: 'WindowText'
                            },
                            _c)
                    }
                ]
            ],
            disabled && [
                {
                    cursor: 'default'
                },
                !checked && [
                    {
                        borderColor: pillBorderDisabledColor
                    }
                ],
                checked && [
                    {
                        backgroundColor: pillCheckedDisabledBackground,
                        borderColor: 'transparent',
                        justifyContent: 'flex-end'
                    }
                ]
            ],
            !disabled && {
                selectors: {
                    '&:hover': {
                        selectors: (_e = {},
                            _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                borderColor: 'Highlight'
                            },
                            _e)
                    }
                }
            }
        ],
        thumb: [
            'ms-Toggle-thumb',
            {
                width: DEFAULT_THUMB_SIZE,
                height: DEFAULT_THUMB_SIZE,
                borderRadius: '50%',
                transition: 'all 0.1s ease',
                backgroundColor: thumbBackground,
                /* Border is added to handle high contrast mode for Firefox */
                borderColor: 'transparent',
                borderWidth: '.28em',
                borderStyle: 'solid',
                boxSizing: 'border-box'
            },
            !disabled &&
                checked && [
                {
                    backgroundColor: thumbCheckedBackground,
                    selectors: (_f = {},
                        _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            backgroundColor: 'Window',
                            borderColor: 'Window'
                        },
                        _f)
                }
            ],
            disabled && [
                !checked && [
                    {
                        backgroundColor: thumbDisabledBackground
                    }
                ],
                checked && [
                    {
                        backgroundColor: thumbCheckedDisabledBackground
                    }
                ]
            ]
        ],
        text: [
            'ms-Toggle-stateText',
            {
                selectors: {
                    // Workaround: make rules more specific than Label rules.
                    '&&': {
                        padding: '0',
                        margin: '0 8px',
                        userSelect: 'none',
                        fontWeight: _Styling__WEBPACK_IMPORTED_MODULE_0__["FontWeights"].regular
                    }
                }
            },
            disabled && {
                selectors: {
                    '&&': {
                        color: textDisabledColor,
                        selectors: (_g = {},
                            _g[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                                color: 'GrayText'
                            },
                            _g)
                    }
                }
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Toggle/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Toggle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Toggle/Toggle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return _Toggle__WEBPACK_IMPORTED_MODULE_0__["Toggle"]; });

/* harmony import */ var _Toggle_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Toggle/Toggle.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToggleBase", function() { return _Toggle_base__WEBPACK_IMPORTED_MODULE_1__["ToggleBase"]; });





/***/ }),

/***/ "./lib/components/Tooltip/Tooltip.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipBase", function() { return TooltipBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/common/DirectionalHint.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var TooltipBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TooltipBase, _super);
    function TooltipBase() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onRenderContent = function (props) {
            return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("p", { className: _this._classNames.subText }, props.content);
        };
        return _this;
    }
    TooltipBase.prototype.render = function () {
        var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className || (calloutProps && calloutProps.className),
            beakWidth: calloutProps && calloutProps.beakWidth,
            gapSpace: calloutProps && calloutProps.gapSpace,
            maxWidth: maxWidth
        });
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_3__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["divProperties"], ['id']), { className: this._classNames.root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.content, id: id, role: "tooltip", onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));
    };
    // Specify default props values
    TooltipBase.defaultProps = {
        directionalHint: _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].topCenter,
        maxWidth: '364px',
        calloutProps: {
            isBeakVisible: true,
            beakWidth: 16,
            gapSpace: 0,
            setInitialFocus: true,
            doNotLayer: false
        }
    };
    return TooltipBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Tooltip/Tooltip.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return Tooltip; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Tooltip_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Tooltip/Tooltip.base.js");
/* harmony import */ var _Tooltip_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Tooltip/Tooltip.styles.js");



var Tooltip = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Tooltip_base__WEBPACK_IMPORTED_MODULE_1__["TooltipBase"], _Tooltip_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'Tooltip'
});


/***/ }),

/***/ "./lib/components/Tooltip/Tooltip.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var getStyles = function (props) {
    var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;
    // The math here is done to account for the 45 degree rotation of the beak
    var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace);
    return {
        root: [
            'ms-Tooltip',
            theme.fonts.medium,
            _Styling__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"].fadeIn200,
            {
                background: semanticColors.menuBackground,
                boxShadow: effects.elevation8,
                padding: '8px',
                maxWidth: maxWidth,
                selectors: {
                    ':after': {
                        content: "''",
                        position: 'absolute',
                        bottom: tooltipGapSpace,
                        left: tooltipGapSpace,
                        right: tooltipGapSpace,
                        top: tooltipGapSpace,
                        zIndex: 0
                    }
                }
            },
            className
        ],
        content: [
            'ms-Tooltip-content',
            fonts.small,
            {
                position: 'relative',
                zIndex: 1,
                color: palette.neutralPrimary,
                wordWrap: 'break-word',
                overflowWrap: 'break-word',
                overflow: 'hidden'
            }
        ],
        subText: [
            'ms-Tooltip-subtext',
            {
                // Using inherit here to avoid unintentional global overrides of the <p> tag.
                fontSize: 'inherit',
                fontWeight: 'inherit',
                color: 'inherit',
                margin: 0
            }
        ]
    };
};


/***/ }),

/***/ "./lib/components/Tooltip/Tooltip.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipDelay", function() { return TooltipDelay; });
/**
 * {@docCategory Tooltip}
 */
var TooltipDelay;
(function (TooltipDelay) {
    TooltipDelay[TooltipDelay["zero"] = 0] = "zero";
    TooltipDelay[TooltipDelay["medium"] = 1] = "medium";
    TooltipDelay[TooltipDelay["long"] = 2] = "long";
})(TooltipDelay || (TooltipDelay = {}));


/***/ }),

/***/ "./lib/components/Tooltip/TooltipHost.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipHostBase", function() { return TooltipHostBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TooltipHost_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.types.js");
/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Tooltip/Tooltip.js");
/* harmony import */ var _Tooltip_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/Tooltip/Tooltip.types.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["classNamesFunction"])();
var TooltipHostBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TooltipHostBase, _super);
    // Constructor
    function TooltipHostBase(props) {
        var _this = _super.call(this, props) || this;
        // The wrapping div that gets the hover events
        _this._tooltipHost = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.show = function () {
            _this._toggleTooltip(true);
        };
        _this.dismiss = function () {
            _this._hideTooltip();
        };
        _this._getTargetElement = function () {
            if (!_this._tooltipHost.current) {
                return undefined;
            }
            var overflowMode = _this.props.overflowMode;
            // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative
            // to the parent element, otherwise it might look off.
            if (overflowMode !== undefined) {
                switch (overflowMode) {
                    case _TooltipHost_types__WEBPACK_IMPORTED_MODULE_4__["TooltipOverflowMode"].Parent:
                        return _this._tooltipHost.current.parentElement;
                    case _TooltipHost_types__WEBPACK_IMPORTED_MODULE_4__["TooltipOverflowMode"].Self:
                        return _this._tooltipHost.current;
                }
            }
            return _this._tooltipHost.current;
        };
        // Show Tooltip
        _this._onTooltipMouseEnter = function (ev) {
            var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;
            if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {
                TooltipHostBase._currentVisibleTooltip.dismiss();
            }
            TooltipHostBase._currentVisibleTooltip = _this;
            if (overflowMode !== undefined) {
                var overflowElement = _this._getTargetElement();
                if (overflowElement && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["hasOverflow"])(overflowElement)) {
                    return;
                }
            }
            if (ev.target && Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["portalContainsElement"])(ev.target, _this._getTargetElement())) {
                // Do not show tooltip when target is inside a portal relative to TooltipHost.
                return;
            }
            _this._clearDismissTimer();
            _this._clearOpenTimer();
            if (delay !== _Tooltip_types__WEBPACK_IMPORTED_MODULE_6__["TooltipDelay"].zero) {
                _this.setState({ isAriaPlaceholderRendered: true });
                var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`
                _this._openTimerId = _this._async.setTimeout(function () {
                    _this._toggleTooltip(true);
                }, delayTime);
            }
            else {
                _this._toggleTooltip(true);
            }
        };
        // Hide Tooltip
        _this._onTooltipMouseLeave = function (ev) {
            var closeDelay = _this.props.closeDelay;
            _this._clearDismissTimer();
            _this._clearOpenTimer();
            if (closeDelay) {
                _this._dismissTimerId = _this._async.setTimeout(function () {
                    _this._toggleTooltip(false);
                }, closeDelay);
            }
            else {
                _this._toggleTooltip(false);
            }
            if (TooltipHostBase._currentVisibleTooltip === _this) {
                TooltipHostBase._currentVisibleTooltip = undefined;
            }
        };
        _this._onTooltipKeyDown = function (ev) {
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_3__["KeyCodes"].escape) {
                _this._hideTooltip();
            }
        };
        _this._clearDismissTimer = function () {
            _this._async.clearTimeout(_this._dismissTimerId);
        };
        _this._clearOpenTimer = function () {
            _this._async.clearTimeout(_this._openTimerId);
        };
        // Hide Tooltip
        _this._hideTooltip = function () {
            _this._toggleTooltip(false);
        };
        _this._toggleTooltip = function (isTooltipVisible) {
            if (_this.state.isTooltipVisible !== isTooltipVisible) {
                _this.setState({ isAriaPlaceholderRendered: false, isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(_this.state.isTooltipVisible); });
            }
        };
        _this._getDelayTime = function (delay) {
            switch (delay) {
                case _Tooltip_types__WEBPACK_IMPORTED_MODULE_6__["TooltipDelay"].medium:
                    return 300;
                case _Tooltip_types__WEBPACK_IMPORTED_MODULE_6__["TooltipDelay"].long:
                    return 500;
                default:
                    return 0;
            }
        };
        Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["initializeComponentRef"])(_this);
        _this.state = {
            isAriaPlaceholderRendered: false,
            isTooltipVisible: false
        };
        _this._async = new _Utilities__WEBPACK_IMPORTED_MODULE_3__["Async"](_this);
        return _this;
    }
    // Render
    TooltipHostBase.prototype.render = function () {
        var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, _b = _a.setAriaDescribedBy, setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;
        this._classNames = getClassNames(styles, {
            theme: theme,
            className: className
        });
        var _c = this.state, isAriaPlaceholderRendered = _c.isAriaPlaceholderRendered, isTooltipVisible = _c.isTooltipVisible;
        var tooltipId = id || Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getId"])('tooltip');
        var isContentPresent = !!(content || (tooltipProps && tooltipProps.onRenderContent && tooltipProps.onRenderContent()));
        var showTooltip = isTooltipVisible && isContentPresent;
        var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && isContentPresent ? tooltipId : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipMouseEnter }, { onBlurCapture: this._hideTooltip }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, "aria-describedby": ariaDescribedBy }),
            children,
            showTooltip && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Tooltip__WEBPACK_IMPORTED_MODULE_5__["Tooltip"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ id: tooltipId, content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["assign"])({}, calloutProps, {
                    onDismiss: this._hideTooltip,
                    onMouseEnter: this._onTooltipMouseEnter,
                    onMouseLeave: this._onTooltipMouseLeave
                }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onWheel: this._hideTooltip }, Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_3__["divProperties"]), tooltipProps))),
            isAriaPlaceholderRendered && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: tooltipId, style: _Styling__WEBPACK_IMPORTED_MODULE_2__["hiddenContentStyle"] }, content))));
    };
    TooltipHostBase.prototype.componentWillUnmount = function () {
        if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {
            TooltipHostBase._currentVisibleTooltip = undefined;
        }
        this._async.dispose();
    };
    TooltipHostBase.defaultProps = {
        delay: _Tooltip_types__WEBPACK_IMPORTED_MODULE_6__["TooltipDelay"].medium
    };
    return TooltipHostBase;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/components/Tooltip/TooltipHost.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipHost", function() { return TooltipHost; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TooltipHost_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.base.js");
/* harmony import */ var _TooltipHost_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.styles.js");



var TooltipHost = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_TooltipHost_base__WEBPACK_IMPORTED_MODULE_1__["TooltipHostBase"], _TooltipHost_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, {
    scope: 'TooltipHost'
});


/***/ }),

/***/ "./lib/components/Tooltip/TooltipHost.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-TooltipHost',
    ariaPlaceholder: 'ms-TooltipHost-aria-placeholder'
};
var getStyles = function (props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                display: 'inline'
            },
            className
        ]
    };
};


/***/ }),

/***/ "./lib/components/Tooltip/TooltipHost.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipOverflowMode", function() { return TooltipOverflowMode; });
/**
 * {@docCategory Tooltip}
 */
var TooltipOverflowMode;
(function (TooltipOverflowMode) {
    /** Only show tooltip if parent DOM element is overflowing */
    TooltipOverflowMode[TooltipOverflowMode["Parent"] = 0] = "Parent";
    /** Only show tooltip if tooltip host's content is overflowing */
    TooltipOverflowMode[TooltipOverflowMode["Self"] = 1] = "Self";
})(TooltipOverflowMode || (TooltipOverflowMode = {}));


/***/ }),

/***/ "./lib/components/Tooltip/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Tooltip/Tooltip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_0__["Tooltip"]; });

/* harmony import */ var _Tooltip_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Tooltip/Tooltip.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipBase", function() { return _Tooltip_base__WEBPACK_IMPORTED_MODULE_1__["TooltipBase"]; });

/* harmony import */ var _Tooltip_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/Tooltip/Tooltip.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipDelay", function() { return _Tooltip_types__WEBPACK_IMPORTED_MODULE_2__["TooltipDelay"]; });

/* harmony import */ var _TooltipHost__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHost", function() { return _TooltipHost__WEBPACK_IMPORTED_MODULE_3__["TooltipHost"]; });

/* harmony import */ var _TooltipHost_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.base.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHostBase", function() { return _TooltipHost_base__WEBPACK_IMPORTED_MODULE_4__["TooltipHostBase"]; });

/* harmony import */ var _TooltipHost_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/Tooltip/TooltipHost.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipOverflowMode", function() { return _TooltipHost_types__WEBPACK_IMPORTED_MODULE_5__["TooltipOverflowMode"]; });

/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"]; });










/***/ }),

/***/ "./lib/components/pickers/AutoFill/BaseAutoFill.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Autofill_Autofill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/Autofill/Autofill.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _Autofill_Autofill__WEBPACK_IMPORTED_MODULE_0__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _Autofill_Autofill__WEBPACK_IMPORTED_MODULE_0__["BaseAutoFill"]; });

// Deprecated, import directly from the component folder now.



/***/ }),

/***/ "./lib/components/pickers/BasePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasePicker", function() { return BasePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasePickerListBelow", function() { return BasePickerListBelow; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusZone.js");
/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Callout.js");
/* harmony import */ var _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/selection/index.js");
/* harmony import */ var _Suggestions_Suggestions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.js");
/* harmony import */ var _Suggestions_Suggestions_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.styles.js");
/* harmony import */ var _Suggestions_SuggestionsController__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsController.js");
/* harmony import */ var _BasePicker_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/pickers/BasePicker.types.js");
/* harmony import */ var _Autofill_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/Autofill/index.js");
/* harmony import */ var _BasePicker_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/components/pickers/BasePicker.scss.js");












var legacyStyles = _BasePicker_scss__WEBPACK_IMPORTED_MODULE_11__;
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * Should be removed once new picker without inheritance is created
 */
function getStyledSuggestions(suggestionsType) {
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(suggestionsType, _Suggestions_Suggestions_styles__WEBPACK_IMPORTED_MODULE_7__["getStyles"], undefined, {
        scope: 'Suggestions'
    });
}
/**
 * {@docCategory Pickers}
 */
var BasePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BasePicker, _super);
    function BasePicker(basePickerProps) {
        var _this = _super.call(this, basePickerProps) || this;
        // Refs
        _this.root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.input = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.focusZone = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this.suggestionElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /**
         * @deprecated this is no longer necessary as typescript now supports generic elements
         */
        _this.SuggestionOfProperType = _Suggestions_Suggestions__WEBPACK_IMPORTED_MODULE_6__["Suggestions"];
        _this._styledSuggestions = getStyledSuggestions(_this.SuggestionOfProperType);
        _this._requestSuggestionsOnClick = false;
        _this.dismissSuggestions = function (ev) {
            var selectItemFunction = function () {
                if (_this.props.onDismiss) {
                    _this.props.onDismiss(ev, _this.suggestionStore.currentSuggestion ? _this.suggestionStore.currentSuggestion.item : undefined);
                }
                if (!ev || (ev && !ev.defaultPrevented)) {
                    // Select the first suggestion if one is available when user leaves.
                    if (_this.canAddItems() && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestedDisplayValue) {
                        _this.addItemByIndex(0);
                    }
                }
            };
            if (_this.currentPromise) {
                _this.currentPromise.then(function () { return selectItemFunction(); });
            }
            else {
                selectItemFunction();
            }
            _this._requestSuggestionsOnClick = false;
            _this.setState({ suggestionsVisible: false });
        };
        _this.refocusSuggestions = function (keyCode) {
            _this.resetFocus();
            if (_this.suggestionStore.suggestions && _this.suggestionStore.suggestions.length > 0) {
                if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up) {
                    _this.suggestionStore.setSelectedSuggestion(_this.suggestionStore.suggestions.length - 1);
                }
                else if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down) {
                    _this.suggestionStore.setSelectedSuggestion(0);
                }
            }
        };
        _this.onInputChange = function (value) {
            _this.updateValue(value);
            _this.setState({
                moreSuggestionsAvailable: true,
                isMostRecentlyUsedVisible: false
            });
        };
        _this.onSuggestionClick = function (ev, item, index) {
            _this.addItemByIndex(index);
            _this._requestSuggestionsOnClick = false;
            _this.setState({ suggestionsVisible: false });
        };
        _this.onSuggestionRemove = function (ev, item, index) {
            if (_this.props.onRemoveSuggestion) {
                _this.props.onRemoveSuggestion(item);
            }
            _this.suggestionStore.removeSuggestion(index);
        };
        _this.onInputFocus = function (ev) {
            // Only trigger all of the focus if this component isn't already focused.
            // For example when an item is selected or removed from the selected list it should be treated
            // as though the input is still focused.
            if (!_this.state.isFocused) {
                _this.setState({ isFocused: true });
                _this.selection.setAllSelected(false);
                if (_this.input.current &&
                    _this.input.current.value === '' &&
                    (_this.props.onEmptyResolveSuggestions || _this.props.onEmptyInputFocus) &&
                    !_this._requestSuggestionsOnClick) {
                    _this.onEmptyInputFocus();
                    _this.setState({
                        isMostRecentlyUsedVisible: true,
                        moreSuggestionsAvailable: false,
                        suggestionsVisible: true
                    });
                }
                else if (_this.input.current && _this.input.current.value && !_this._requestSuggestionsOnClick) {
                    _this.setState({
                        isMostRecentlyUsedVisible: false,
                        suggestionsVisible: true
                    });
                }
                if (_this.props.inputProps && _this.props.inputProps.onFocus) {
                    _this.props.inputProps.onFocus(ev);
                }
            }
        };
        _this.onInputBlur = function (ev) {
            if (_this.props.inputProps && _this.props.inputProps.onBlur) {
                _this.props.inputProps.onBlur(ev);
            }
        };
        _this.onBlur = function (ev) {
            if (_this.state.isFocused) {
                // Only blur the entire component if an unrelated element gets focus. Otherwise treat it as though it still has focus.
                // Do nothing if the blur is coming from something
                // inside the comboBox root or the comboBox menu since
                // it we are not really bluring from the whole comboBox
                var relatedTarget = ev.relatedTarget;
                if (ev.relatedTarget === null) {
                    // In IE11, due to lack of support, event.relatedTarget is always
                    // null making every onBlur call to be "outside" of the ComboBox
                    // even when it's not. Using document.activeElement is another way
                    // for us to be able to get what the relatedTarget without relying
                    // on the event
                    relatedTarget = document.activeElement;
                }
                if (relatedTarget && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(_this.root.current, relatedTarget)) {
                    _this.setState({ isFocused: false });
                    if (_this.props.onBlur) {
                        _this.props.onBlur(ev);
                    }
                }
            }
        };
        /**
         * Reveals suggestions any time the user clicks on the input element
         * without shifting focus.
         */
        _this.onClick = function (ev) {
            var input = _this.input.current ? _this.input.current.value : '';
            if (_this.props.inputProps !== undefined && _this.props.inputProps.onClick !== undefined) {
                _this.props.inputProps.onClick(ev);
            }
            // Only primary (left) clicks show suggestions.
            if (ev.button === 0 && !_this.state.suggestionsVisible) {
                var emptyResolveSuggestions = _this.props.onEmptyResolveSuggestions
                    ? _this.props.onEmptyResolveSuggestions
                    : _this.props.onEmptyInputFocus;
                if (input === '') {
                    if (emptyResolveSuggestions) {
                        _this.setState({ suggestionsVisible: true });
                        var suggestions = emptyResolveSuggestions(_this.state.items);
                        _this.updateSuggestionsList(suggestions);
                    }
                }
                else {
                    _this._requestSuggestionsOnClick = true;
                    _this._onResolveSuggestions(input);
                }
            }
        };
        _this.onKeyDown = function (ev) {
            var keyCode = ev.which;
            switch (keyCode) {
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape:
                    if (_this.state.suggestionsVisible) {
                        _this._requestSuggestionsOnClick = false;
                        _this.setState({ suggestionsVisible: false });
                        ev.preventDefault();
                        ev.stopPropagation();
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].tab:
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter:
                    if (_this.suggestionElement.current && _this.suggestionElement.current.hasSuggestedActionSelected()) {
                        _this.suggestionElement.current.executeSelectedAction();
                    }
                    else if (!ev.shiftKey && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestionsVisible) {
                        _this.completeSuggestion();
                        ev.preventDefault();
                        ev.stopPropagation();
                    }
                    else {
                        _this._onValidateInput();
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].backspace:
                    if (!_this.props.disabled) {
                        _this.onBackspace(ev);
                    }
                    ev.stopPropagation();
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].del:
                    if (!_this.props.disabled) {
                        if (_this.input.current &&
                            ev.target === _this.input.current.inputElement &&
                            _this.state.suggestionsVisible &&
                            _this.suggestionStore.currentIndex !== -1) {
                            if (_this.props.onRemoveSuggestion) {
                                _this.props.onRemoveSuggestion(_this.suggestionStore.currentSuggestion.item);
                            }
                            _this.suggestionStore.removeSuggestion(_this.suggestionStore.currentIndex);
                            _this.forceUpdate();
                        }
                        else {
                            _this.onBackspace(ev);
                        }
                    }
                    ev.stopPropagation();
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up:
                    if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {
                        if (_this.suggestionElement.current &&
                            _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {
                            ev.preventDefault();
                            ev.stopPropagation();
                        }
                        else {
                            if (_this.suggestionElement.current &&
                                _this.suggestionElement.current.hasSuggestedAction() &&
                                _this.suggestionStore.currentIndex === 0) {
                                ev.preventDefault();
                                ev.stopPropagation();
                                _this.suggestionElement.current.focusAboveSuggestions();
                                _this.suggestionStore.deselectAllSuggestions();
                                _this.forceUpdate();
                            }
                            else {
                                if (_this.suggestionStore.previousSuggestion()) {
                                    ev.preventDefault();
                                    ev.stopPropagation();
                                    _this.onSuggestionSelect();
                                }
                            }
                        }
                    }
                    break;
                case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down:
                    if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {
                        if (_this.suggestionElement.current &&
                            _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {
                            ev.preventDefault();
                            ev.stopPropagation();
                        }
                        else {
                            if (_this.suggestionElement.current &&
                                _this.suggestionElement.current.hasSuggestedAction() &&
                                _this.suggestionStore.currentIndex + 1 === _this.suggestionStore.suggestions.length) {
                                ev.preventDefault();
                                ev.stopPropagation();
                                _this.suggestionElement.current.focusBelowSuggestions();
                                _this.suggestionStore.deselectAllSuggestions();
                                _this.forceUpdate();
                            }
                            else {
                                if (_this.suggestionStore.nextSuggestion()) {
                                    ev.preventDefault();
                                    ev.stopPropagation();
                                    _this.onSuggestionSelect();
                                }
                            }
                        }
                    }
                    break;
            }
        };
        _this.onItemChange = function (changedItem, index) {
            var items = _this.state.items;
            if (index >= 0) {
                var newItems = items;
                newItems[index] = changedItem;
                _this._updateSelectedItems(newItems);
            }
        };
        _this.onGetMoreResults = function () {
            _this.setState({
                isSearching: true
            }, function () {
                if (_this.props.onGetMoreResults && _this.input.current) {
                    var suggestions = _this.props.onGetMoreResults(_this.input.current.value, _this.state.items);
                    var suggestionsArray = suggestions;
                    var suggestionsPromiseLike = suggestions;
                    if (Array.isArray(suggestionsArray)) {
                        _this.updateSuggestions(suggestionsArray);
                        _this.setState({ isSearching: false });
                    }
                    else if (suggestionsPromiseLike.then) {
                        suggestionsPromiseLike.then(function (newSuggestions) {
                            _this.updateSuggestions(newSuggestions);
                            _this.setState({ isSearching: false });
                        });
                    }
                }
                else {
                    _this.setState({ isSearching: false });
                }
                if (_this.input.current) {
                    _this.input.current.focus();
                }
                _this.setState({
                    moreSuggestionsAvailable: false,
                    isResultsFooterVisible: true
                });
            });
        };
        _this.addItemByIndex = function (index) {
            _this.addItem(_this.suggestionStore.getSuggestionAtIndex(index).item);
            if (_this.input.current) {
                _this.input.current.clear();
            }
            _this.updateValue('');
        };
        _this.addItem = function (item) {
            var processedItem = _this.props.onItemSelected ? _this.props.onItemSelected(item) : item;
            if (processedItem === null) {
                return;
            }
            var processedItemObject = processedItem;
            var processedItemPromiseLike = processedItem;
            if (processedItemPromiseLike && processedItemPromiseLike.then) {
                processedItemPromiseLike.then(function (resolvedProcessedItem) {
                    var newItems = _this.state.items.concat([resolvedProcessedItem]);
                    _this._updateSelectedItems(newItems);
                });
            }
            else {
                var newItems = _this.state.items.concat([processedItemObject]);
                _this._updateSelectedItems(newItems);
            }
            _this.setState({ suggestedDisplayValue: '' });
        };
        _this.removeItem = function (item, focusNextItem) {
            var items = _this.state.items;
            var index = items.indexOf(item);
            if (index >= 0) {
                var newItems = items.slice(0, index).concat(items.slice(index + 1));
                _this._updateSelectedItems(newItems, focusNextItem ? index : undefined);
            }
        };
        _this.removeItems = function (itemsToRemove) {
            var items = _this.state.items;
            var newItems = items.filter(function (item) { return itemsToRemove.indexOf(item) === -1; });
            var firstItemToRemove = itemsToRemove[0];
            var index = items.indexOf(firstItemToRemove);
            _this._updateSelectedItems(newItems, index);
        };
        _this._isFocusZoneInnerKeystroke = function (ev) {
            // If suggestions are shown const up/down keys control them, otherwise allow them through to control the focusZone.
            if (_this.state.suggestionsVisible) {
                switch (ev.which) {
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up:
                    case _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down:
                        return true;
                }
            }
            if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                return true;
            }
            return false;
        };
        var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        _this._ariaMap = {
            selectedItems: "selected-items-" + _this._id,
            selectedSuggestionAlert: "selected-suggestion-alert-" + _this._id,
            suggestionList: "suggestion-list-" + _this._id
        };
        _this.suggestionStore = new _Suggestions_SuggestionsController__WEBPACK_IMPORTED_MODULE_8__["SuggestionsController"]();
        _this.selection = new _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["Selection"]({ onSelectionChanged: function () { return _this.onSelectionChange(); } });
        _this.selection.setItems(items);
        _this.state = {
            items: items,
            suggestedDisplayValue: '',
            isMostRecentlyUsedVisible: false,
            moreSuggestionsAvailable: false,
            isFocused: false,
            isSearching: false,
            selectedIndices: []
        };
        return _this;
    }
    Object.defineProperty(BasePicker.prototype, "items", {
        get: function () {
            return this.state.items;
        },
        enumerable: true,
        configurable: true
    });
    // tslint:disable-next-line function-name
    BasePicker.prototype.UNSAFE_componentWillUpdate = function (newProps, newState) {
        if (newState.items && newState.items !== this.state.items) {
            this.selection.setItems(newState.items);
        }
    };
    BasePicker.prototype.componentDidMount = function () {
        this.selection.setItems(this.state.items);
        this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);
    };
    // tslint:disable-next-line function-name
    BasePicker.prototype.UNSAFE_componentWillReceiveProps = function (newProps) {
        var _this = this;
        var newItems = newProps.selectedItems;
        if (newItems) {
            var focusIndex_1;
            // If there are less new items than old items then something was removed and we
            // should try to keep focus consistent
            if (newItems.length < this.state.items.length) {
                focusIndex_1 = this.state.items.indexOf(this.selection.getSelection()[0]);
            }
            this.setState({
                items: newProps.selectedItems
            }, function () {
                // Only update the focus if this component is currently focused to ensure that the basepicker
                // doesn't steal focus from something else.
                if (_this.state.isFocused) {
                    // Need to reset focus in the same that way that we do if an item is selected by a non-controlled component
                    // See _onSelectedItemsUpdated.
                    _this.resetFocus(focusIndex_1);
                }
            });
        }
    };
    BasePicker.prototype.componentWillUnmount = function () {
        _super.prototype.componentWillUnmount.call(this);
        if (this.currentPromise) {
            this.currentPromise = undefined;
        }
    };
    BasePicker.prototype.focus = function () {
        if (this.focusZone.current) {
            this.focusZone.current.focus();
        }
    };
    BasePicker.prototype.focusInput = function () {
        if (this.input.current) {
            this.input.current.focus();
        }
    };
    BasePicker.prototype.completeSuggestion = function () {
        if (this.suggestionStore.hasSelectedSuggestion() && this.input.current) {
            this.addItem(this.suggestionStore.currentSuggestion.item);
            this.updateValue('');
            this.input.current.clear();
        }
    };
    BasePicker.prototype.render = function () {
        var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused, items = _a.items;
        var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, theme = _b.theme, styles = _b.styles;
        var selectedSuggestionAlertId = this.props.enableSelectedSuggestionAlert ? this._ariaMap.selectedSuggestionAlert : '';
        var suggestionsAvailable = this.state.suggestionsVisible ? this._ariaMap.suggestionList : '';
        // TODO
        // Clean this up by leaving only the first part after removing support for SASS.
        // Currently we can not remove the SASS styles from BasePicker class because it
        // might be used by consumers who created custom pickers from extending from
        // this base class and have not used the new 'styles' prop.
        // We check for 'styles' prop which is going to be injected by the 'styled' HOC
        // for every other already existing picker variant (PeoplePicker, TagPicker)
        // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),
        // then we just use the old SASS styles instead.
        var classNames = styles
            ? getClassNames(styles, {
                theme: theme,
                className: className,
                isFocused: isFocused,
                disabled: disabled,
                inputClassName: inputProps && inputProps.className
            })
            : {
                root: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker', className ? className : ''),
                text: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),
                itemsWrapper: legacyStyles.pickerItems,
                input: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),
                screenReaderText: legacyStyles.screenReaderOnly
            };
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.root, className: classNames.root, onKeyDown: this.onKeyDown, onBlur: this.onBlur },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], { componentRef: this.focusZone, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZoneDirection"].bidirectional, isInnerZoneKeystroke: this._isFocusZoneInnerKeystroke, role: 'combobox', "aria-expanded": !!this.state.suggestionsVisible, "aria-owns": suggestionsAvailable || undefined, "aria-haspopup": suggestionsAvailable && this.suggestionStore.suggestions.length > 0 ? 'listbox' : 'dialog' },
                this.getSuggestionsAlert(classNames.screenReaderText),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["SelectionZone"], { selection: this.selection, selectionMode: _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["SelectionMode"].multiple },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.text },
                        items.length > 0 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: this._ariaMap.selectedItems, className: classNames.itemsWrapper, role: 'list' }, this.renderItems())),
                        this.canAddItems() && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Autofill_index__WEBPACK_IMPORTED_MODULE_10__["Autofill"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ spellCheck: false }, inputProps, { className: classNames.input, componentRef: this.input, onClick: this.onClick, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, "aria-describedby": items.length > 0 ? this._ariaMap.selectedItems : undefined, "aria-controls": suggestionsAvailable + " " + selectedSuggestionAlertId || undefined, "aria-activedescendant": this.getActiveDescendant(), autoCapitalize: "off", autoComplete: "off", role: 'textbox', disabled: disabled, "aria-autocomplete": 'both', onInputChange: this.props.onInputChange })))))),
            this.renderSuggestions()));
    };
    BasePicker.prototype.canAddItems = function () {
        var items = this.state.items;
        var itemLimit = this.props.itemLimit;
        return itemLimit === undefined || items.length < itemLimit;
    };
    BasePicker.prototype.renderSuggestions = function () {
        var StyledTypedSuggestions = this._styledSuggestions;
        return this.state.suggestionsVisible && this.input ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Callout__WEBPACK_IMPORTED_MODULE_4__["Callout"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ isBeakVisible: false, gapSpace: 5, target: this.input.current ? this.input.current.inputElement : undefined, onDismiss: this.dismissSuggestions, directionalHint: _Callout__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomLeftEdge, directionalHintForRTL: _Callout__WEBPACK_IMPORTED_MODULE_4__["DirectionalHint"].bottomRightEdge }, this.props.pickerCalloutProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](StyledTypedSuggestions
            // Assumed to set in derived component's defaultProps
            , tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ 
                // Assumed to set in derived component's defaultProps
                onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionElement, onGetMoreResults: this.onGetMoreResults, moreSuggestionsAvailable: this.state.moreSuggestionsAvailable, isLoading: this.state.suggestionsLoading, isSearching: this.state.isSearching, isMostRecentlyUsedVisible: this.state.isMostRecentlyUsedVisible, isResultsFooterVisible: this.state.isResultsFooterVisible, refocusSuggestions: this.refocusSuggestions, removeSuggestionAriaLabel: this.props.removeButtonAriaLabel, suggestionsListId: this._ariaMap.suggestionList }, this.props.pickerSuggestionsProps)))) : null;
    };
    BasePicker.prototype.renderItems = function () {
        var _this = this;
        var _a = this.props, disabled = _a.disabled, removeButtonAriaLabel = _a.removeButtonAriaLabel;
        var onRenderItem = this.props.onRenderItem;
        var _b = this.state, items = _b.items, selectedIndices = _b.selectedIndices;
        return items.map(function (item, index) {
            return onRenderItem({
                item: item,
                index: index,
                key: item.key ? item.key : index,
                selected: selectedIndices.indexOf(index) !== -1,
                onRemoveItem: function () { return _this.removeItem(item, true); },
                disabled: disabled,
                onItemChange: _this.onItemChange,
                removeButtonAriaLabel: removeButtonAriaLabel
            });
        });
    };
    BasePicker.prototype.resetFocus = function (index) {
        var items = this.state.items;
        if (items.length && index >= 0) {
            var newEl = this.root.current &&
                this.root.current.querySelectorAll('[data-selection-index]')[Math.min(index, items.length - 1)];
            if (newEl && this.focusZone.current) {
                this.focusZone.current.focusElement(newEl);
            }
        }
        else if (!this.canAddItems()) {
            this.resetFocus(items.length - 1);
        }
        else {
            if (this.input.current) {
                this.input.current.focus();
            }
        }
    };
    BasePicker.prototype.onSuggestionSelect = function () {
        if (this.suggestionStore.currentSuggestion) {
            var currentValue = this.input.current ? this.input.current.value : '';
            var itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, currentValue);
            this.setState({ suggestedDisplayValue: itemValue });
        }
    };
    BasePicker.prototype.onSelectionChange = function () {
        this.setState({
            selectedIndices: this.selection.getSelectedIndices()
        });
    };
    BasePicker.prototype.updateSuggestions = function (suggestions) {
        this.suggestionStore.updateSuggestions(suggestions, 0);
        this.forceUpdate();
    };
    BasePicker.prototype.onEmptyInputFocus = function () {
        var emptyResolveSuggestions = this.props.onEmptyResolveSuggestions
            ? this.props.onEmptyResolveSuggestions
            : this.props.onEmptyInputFocus;
        var suggestions = emptyResolveSuggestions(this.state.items);
        this.updateSuggestionsList(suggestions);
    };
    BasePicker.prototype.updateValue = function (updatedValue) {
        this._onResolveSuggestions(updatedValue);
    };
    BasePicker.prototype.updateSuggestionsList = function (suggestions, updatedValue) {
        var _this = this;
        var suggestionsArray = suggestions;
        var suggestionsPromiseLike = suggestions;
        // Check to see if the returned value is an array, if it is then just pass it into the next function .
        // If the returned value is not an array then check to see if it's a promise or PromiseLike. If it is then resolve it asynchronously.
        if (Array.isArray(suggestionsArray)) {
            this._updateAndResolveValue(updatedValue, suggestionsArray);
        }
        else if (suggestionsPromiseLike && suggestionsPromiseLike.then) {
            this.setState({
                suggestionsLoading: true
            });
            // Clear suggestions
            this.suggestionStore.updateSuggestions([]);
            if (updatedValue !== undefined) {
                this.setState({
                    suggestionsVisible: this._getShowSuggestions()
                });
            }
            else {
                this.setState({
                    suggestionsVisible: this.input.current && this.input.current.inputElement === document.activeElement
                });
            }
            // Ensure that the promise will only use the callback if it was the most recent one.
            var promise_1 = (this.currentPromise = suggestionsPromiseLike);
            promise_1.then(function (newSuggestions) {
                if (promise_1 === _this.currentPromise) {
                    _this._updateAndResolveValue(updatedValue, newSuggestions);
                }
            });
        }
    };
    BasePicker.prototype.resolveNewValue = function (updatedValue, suggestions) {
        var _this = this;
        this.updateSuggestions(suggestions);
        var itemValue = undefined;
        if (this.suggestionStore.currentSuggestion) {
            itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, updatedValue);
        }
        // Only set suggestionloading to false after there has been time for the new suggestions to flow
        // to the suggestions list. This is to ensure that the suggestions are available before aria-activedescendant
        // is set so that screen readers will read out the first selected option.
        this.setState({
            suggestedDisplayValue: itemValue,
            suggestionsVisible: this._getShowSuggestions()
        }, function () { return _this.setState({ suggestionsLoading: false }); });
    };
    BasePicker.prototype.onChange = function (items) {
        if (this.props.onChange) {
            this.props.onChange(items);
        }
    };
    // This is protected because we may expect the backspace key to work differently in a different kind of picker.
    // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow
    BasePicker.prototype.onBackspace = function (ev) {
        if ((this.state.items.length && !this.input.current) ||
            (this.input.current && (!this.input.current.isValueSelected && this.input.current.cursorLocation === 0))) {
            if (this.selection.getSelectedCount() > 0) {
                this.removeItems(this.selection.getSelection());
            }
            else {
                this.removeItem(this.state.items[this.state.items.length - 1]);
            }
        }
    };
    BasePicker.prototype.getActiveDescendant = function () {
        var currentIndex = this.suggestionStore.currentIndex;
        return currentIndex > -1 && !this.state.suggestionsLoading ? 'sug-' + currentIndex : undefined;
    };
    BasePicker.prototype.getSuggestionsAlert = function (suggestionAlertClassName) {
        if (suggestionAlertClassName === void 0) { suggestionAlertClassName = legacyStyles.screenReaderOnly; }
        var currentIndex = this.suggestionStore.currentIndex;
        if (this.props.enableSelectedSuggestionAlert) {
            var selectedSuggestion = currentIndex > -1 ? this.suggestionStore.getSuggestionAtIndex(this.suggestionStore.currentIndex) : undefined;
            var selectedSuggestionAlertText = selectedSuggestion ? selectedSuggestion.ariaLabel : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: suggestionAlertClassName, role: "alert", id: this._ariaMap.selectedSuggestionAlert, "aria-live": "assertive" },
                selectedSuggestionAlertText,
                ' '));
        }
    };
    /**
     * Takes in the current updated value and either resolves it with the new suggestions
     * or if updated value is undefined then it clears out currently suggested items
     */
    BasePicker.prototype._updateAndResolveValue = function (updatedValue, newSuggestions) {
        if (updatedValue !== undefined) {
            this.resolveNewValue(updatedValue, newSuggestions);
        }
        else {
            this.suggestionStore.updateSuggestions(newSuggestions, -1);
            if (this.state.suggestionsLoading) {
                this.setState({
                    suggestionsLoading: false
                });
            }
        }
    };
    /**
     * Controls what happens whenever there is an action that impacts the selected items.
     * If selectedItems is provided as a property then this will act as a controlled component and it will not update it's own state.
     */
    BasePicker.prototype._updateSelectedItems = function (items, focusIndex) {
        var _this = this;
        if (this.props.selectedItems) {
            // If the component is a controlled component then the controlling component will need to add or remove the items.
            this.onChange(items);
        }
        else {
            this.setState({ items: items }, function () {
                _this._onSelectedItemsUpdated(items, focusIndex);
            });
        }
    };
    BasePicker.prototype._onSelectedItemsUpdated = function (items, focusIndex) {
        this.resetFocus(focusIndex);
        this.onChange(items);
    };
    /**
     * Suggestions are normally shown after the user updates text and the text
     * is non-empty, but also when the user clicks on the input element.
     * @returns True if suggestions should be shown.
     */
    BasePicker.prototype._getShowSuggestions = function () {
        var areSuggestionsVisible = this.input.current !== undefined &&
            this.input.current !== null &&
            this.input.current.inputElement === document.activeElement &&
            (this.input.current.value !== '' || this._requestSuggestionsOnClick);
        return areSuggestionsVisible;
    };
    BasePicker.prototype._onResolveSuggestions = function (updatedValue) {
        var suggestions = this.props.onResolveSuggestions(updatedValue, this.state.items);
        if (suggestions !== null) {
            this.updateSuggestionsList(suggestions, updatedValue);
        }
    };
    BasePicker.prototype._onValidateInput = function () {
        if (this.props.onValidateInput &&
            this.input.current &&
            this.props.onValidateInput(this.input.current.value) !== _BasePicker_types__WEBPACK_IMPORTED_MODULE_9__["ValidationState"].invalid &&
            this.props.createGenericItem) {
            var itemToConvert = this.props.createGenericItem(this.input.current.value, this.props.onValidateInput(this.input.current.value));
            this.suggestionStore.createGenericSuggestion(itemToConvert);
            this.completeSuggestion();
        }
    };
    BasePicker.prototype._getTextFromItem = function (item, currentValue) {
        if (this.props.getTextFromItem) {
            return this.props.getTextFromItem(item, currentValue);
        }
        else {
            return '';
        }
    };
    return BasePicker;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));

var BasePickerListBelow = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BasePickerListBelow, _super);
    function BasePickerListBelow() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    BasePickerListBelow.prototype.render = function () {
        var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused;
        var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, theme = _b.theme, styles = _b.styles;
        var selectedSuggestionAlertId = this.props.enableSelectedSuggestionAlert
            ? this._ariaMap.selectedSuggestionAlert
            : '';
        var suggestionsAvailable = this.state.suggestionsVisible ? this._ariaMap.suggestionList : '';
        // TODO
        // Clean this up by leaving only the first part after removing support for SASS.
        // Currently we can not remove the SASS styles from BasePicker class because it
        // might be used by consumers who created custom pickers from extending from
        // this base class and have not used the new 'styles' prop.
        // We check for 'styles' prop which is going to be injected by the 'styled' HOC
        // for every other already existing picker variant (PeoplePicker, TagPicker)
        // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),
        // then we just use the old SASS styles instead.
        var classNames = styles
            ? getClassNames(styles, {
                theme: theme,
                className: className,
                isFocused: isFocused,
                inputClassName: inputProps && inputProps.className
            })
            : {
                root: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker', className ? className : ''),
                text: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),
                input: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),
                screenReaderText: legacyStyles.screenReaderOnly
            };
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this.root, onBlur: this.onBlur },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, onKeyDown: this.onKeyDown },
                this.getSuggestionsAlert(classNames.screenReaderText),
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.text, "aria-owns": suggestionsAvailable || undefined, "aria-expanded": !!this.state.suggestionsVisible, "aria-haspopup": suggestionsAvailable && this.suggestionStore.suggestions.length > 0 ? 'listbox' : 'dialog', role: "combobox" },
                    react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Autofill_index__WEBPACK_IMPORTED_MODULE_10__["Autofill"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, inputProps, { className: classNames.input, componentRef: this.input, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onClick, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, "aria-activedescendant": this.getActiveDescendant(), autoCapitalize: "off", autoComplete: "off", role: "textbox", disabled: disabled, "aria-controls": suggestionsAvailable + " " + selectedSuggestionAlertId || undefined, onInputChange: this.props.onInputChange })))),
            this.renderSuggestions(),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["SelectionZone"], { selection: this.selection, selectionMode: _utilities_selection_index__WEBPACK_IMPORTED_MODULE_5__["SelectionMode"].single },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], { componentRef: this.focusZone, className: "ms-BasePicker-selectedItems" // just a className hook without any styles applied to it.
                    , isCircularNavigation: true, direction: _FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZoneDirection"].bidirectional, isInnerZoneKeystroke: this._isFocusZoneInnerKeystroke, id: this._ariaMap.selectedItems, role: 'list' }, this.renderItems()))));
    };
    BasePickerListBelow.prototype.onBackspace = function (ev) {
        // override the existing backspace method to not do anything because the list items appear below.
    };
    return BasePickerListBelow;
}(BasePicker));



/***/ }),

/***/ "./lib/components/pickers/BasePicker.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerText", function() { return pickerText; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inputFocused", function() { return inputFocused; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerInput", function() { return pickerInput; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pickerItems", function() { return pickerItems; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "screenReaderOnly", function() { return screenReaderOnly; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".pickerText_a071e712{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid " }, { "theme": "neutralTertiary", "defaultValue": "#a19f9d" }, { "rawString": ";min-width:180px;min-height:30px}.pickerText_a071e712:hover{border-color:" }, { "theme": "inputBorderHovered", "defaultValue": "#323130" }, { "rawString": "}.pickerText_a071e712.inputFocused_a071e712{border-color:" }, { "theme": "inputFocusBorderAlt", "defaultValue": "#0078d4" }, { "rawString": "}.pickerInput_a071e712{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:none;padding:0 6px 0px;-ms-flex-item-align:end;align-self:flex-end}.pickerItems_a071e712{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.screenReaderOnly_a071e712{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}\n" }]);
var pickerText = "pickerText_a071e712";
var inputFocused = "inputFocused_a071e712";
var pickerInput = "pickerInput_a071e712";
var pickerItems = "pickerItems_a071e712";
var screenReaderOnly = "screenReaderOnly_a071e712";


/***/ }),

/***/ "./lib/components/pickers/BasePicker.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-BasePicker',
    text: 'ms-BasePicker-text',
    itemsWrapper: 'ms-BasePicker-itemsWrapper',
    input: 'ms-BasePicker-input'
};
function getStyles(props) {
    var _a;
    var className = props.className, theme = props.theme, isFocused = props.isFocused, inputClassName = props.inputClassName, disabled = props.disabled;
    if (!theme) {
        throw new Error('theme is undefined or null in base BasePicker getStyles function.');
    }
    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;
    var inputBorder = semanticColors.inputBorder, inputBorderHovered = semanticColors.inputBorderHovered, inputFocusBorderAlt = semanticColors.inputFocusBorderAlt;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    // The following lines are to create a semi-transparent color overlay for the disabled state with designer's approval.
    // @todo: investigate the performance cost of the calculation below and apply if negligible. Replacing with a static color for now.
    // const rgbColor: IRGB | undefined = cssColor(palette.neutralQuaternaryAlt);
    // const disabledOverlayColor = rgbColor ? `rgba(${rgbColor.r}, ${rgbColor.g}, ${rgbColor.b}, 0.29)` : 'transparent';
    var disabledOverlayColor = 'rgba(218, 218, 218, 0.29)';
    return {
        root: [classNames.root, className],
        text: [
            classNames.text,
            {
                display: 'flex',
                position: 'relative',
                flexWrap: 'wrap',
                alignItems: 'center',
                boxSizing: 'border-box',
                minWidth: 180,
                minHeight: 30,
                border: "1px solid " + inputBorder,
                borderRadius: effects.roundedCorner2
            },
            !isFocused &&
                !disabled && {
                selectors: {
                    ':hover': {
                        borderColor: inputBorderHovered
                    }
                }
            },
            isFocused &&
                !disabled && {
                borderColor: inputFocusBorderAlt
            },
            disabled && {
                borderColor: 'transparent',
                selectors: (_a = {
                        ':after': {
                            content: '""',
                            position: 'absolute',
                            top: 0,
                            right: 0,
                            bottom: 0,
                            left: 0,
                            background: disabledOverlayColor
                        }
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'GrayText',
                        selectors: {
                            ':after': {
                                background: 'none'
                            }
                        }
                    },
                    _a)
            }
        ],
        itemsWrapper: [
            classNames.itemsWrapper,
            {
                display: 'flex',
                flexWrap: 'wrap',
                maxWidth: '100%'
            }
        ],
        input: [
            classNames.input,
            fonts.medium,
            {
                height: 30,
                border: 'none',
                flexGrow: 1,
                outline: 'none',
                padding: '0 6px 0',
                alignSelf: 'flex-end',
                borderRadius: effects.roundedCorner2,
                backgroundColor: 'transparent',
                color: semanticColors.inputText
            },
            inputClassName
        ],
        screenReaderText: _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]
    };
}


/***/ }),

/***/ "./lib/components/pickers/BasePicker.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValidationState", function() { return ValidationState; });
/**
 * Validation state of the user's input.
 * {@docCategory Pickers}
 */
var ValidationState;
(function (ValidationState) {
    /** User input is valid. */
    ValidationState[ValidationState["valid"] = 0] = "valid";
    /** User input could be valid or invalid, its state is not known yet. */
    ValidationState[ValidationState["warning"] = 1] = "warning";
    /** User input is invalid. */
    ValidationState[ValidationState["invalid"] = 2] = "invalid";
})(ValidationState || (ValidationState = {}));


/***/ }),

/***/ "./lib/components/pickers/PeoplePicker/PeoplePicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasePeoplePicker", function() { return BasePeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MemberListPeoplePicker", function() { return MemberListPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePickerBase", function() { return NormalPeoplePickerBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePickerBase", function() { return CompactPeoplePickerBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePickerBase", function() { return ListPeoplePickerBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createGenericItem", function() { return createGenericItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePicker", function() { return NormalPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePicker", function() { return CompactPeoplePicker; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePicker", function() { return ListPeoplePicker; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BasePicker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/pickers/BasePicker.js");
/* harmony import */ var _BasePicker_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/pickers/BasePicker.types.js");
/* harmony import */ var _PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js");
/* harmony import */ var _PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js");
/* harmony import */ var _BasePicker_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/pickers/BasePicker.styles.js");








/**
 * {@docCategory PeoplePicker}
 */
var BasePeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BasePeoplePicker, _super);
    function BasePeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return BasePeoplePicker;
}(_BasePicker__WEBPACK_IMPORTED_MODULE_3__["BasePicker"]));

/**
 * {@docCategory PeoplePicker}
 */
var MemberListPeoplePicker = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MemberListPeoplePicker, _super);
    function MemberListPeoplePicker() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return MemberListPeoplePicker;
}(_BasePicker__WEBPACK_IMPORTED_MODULE_3__["BasePickerListBelow"]));

/**
 * Standard People Picker.
 * {@docCategory PeoplePicker}
 */
var NormalPeoplePickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](NormalPeoplePickerBase, _super);
    function NormalPeoplePickerBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /** Default props for NormalPeoplePicker. */
    NormalPeoplePickerBase.defaultProps = {
        onRenderItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_5__["PeoplePickerItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props)); },
        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_6__["PeoplePickerItemSuggestion"], { personaProps: personaProps, suggestionsProps: suggestionsProps })); },
        createGenericItem: createGenericItem
    };
    return NormalPeoplePickerBase;
}(BasePeoplePicker));

/**
 * Compact layout. It uses personas without secondary text when displaying search results.
 * {@docCategory PeoplePicker}
 */
var CompactPeoplePickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CompactPeoplePickerBase, _super);
    function CompactPeoplePickerBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /** Default props for CompactPeoplePicker. */
    CompactPeoplePickerBase.defaultProps = {
        onRenderItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_5__["PeoplePickerItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props)); },
        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_6__["PeoplePickerItemSuggestion"], { personaProps: personaProps, suggestionsProps: suggestionsProps, compact: true })); },
        createGenericItem: createGenericItem
    };
    return CompactPeoplePickerBase;
}(BasePeoplePicker));

/**
 * MemberList layout. The selected people show up below the search box.
 * {@docCategory PeoplePicker}
 */
var ListPeoplePickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ListPeoplePickerBase, _super);
    function ListPeoplePickerBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /** Default props for ListPeoplePicker. */
    ListPeoplePickerBase.defaultProps = {
        onRenderItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_5__["PeoplePickerItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props)); },
        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_6__["PeoplePickerItemSuggestion"], { personaProps: personaProps, suggestionsProps: suggestionsProps })); },
        createGenericItem: createGenericItem
    };
    return ListPeoplePickerBase;
}(MemberListPeoplePicker));

/**
 * {@docCategory PeoplePicker}
 */
function createGenericItem(name, currentValidationState) {
    var personaToConvert = {
        key: name,
        primaryText: name,
        imageInitials: '!',
        ValidationState: currentValidationState
    };
    if (currentValidationState !== _BasePicker_types__WEBPACK_IMPORTED_MODULE_4__["ValidationState"].warning) {
        personaToConvert.imageInitials = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getInitials"])(name, Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])());
    }
    return personaToConvert;
}
var NormalPeoplePicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(NormalPeoplePickerBase, _BasePicker_styles__WEBPACK_IMPORTED_MODULE_7__["getStyles"], undefined, {
    scope: 'NormalPeoplePicker'
});
var CompactPeoplePicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(CompactPeoplePickerBase, _BasePicker_styles__WEBPACK_IMPORTED_MODULE_7__["getStyles"], undefined, {
    scope: 'CompactPeoplePicker'
});
var ListPeoplePicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(ListPeoplePickerBase, _BasePicker_styles__WEBPACK_IMPORTED_MODULE_7__["getStyles"], undefined, {
    scope: 'ListPeoplePickerBase'
});


/***/ }),

/***/ "./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemBase", function() { return PeoplePickerItemBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItem", function() { return PeoplePickerItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _BasePicker_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/pickers/BasePicker.types.js");
/* harmony import */ var _PeoplePickerItem_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js");







var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var PeoplePickerItemBase = function (props) {
    var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled;
    var itemId = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
    var classNames = getClassNames(styles, {
        theme: theme,
        className: className,
        selected: selected,
        disabled: disabled,
        invalid: item.ValidationState === _BasePicker_types__WEBPACK_IMPORTED_MODULE_5__["ValidationState"].warning
    });
    var personaStyles = classNames.subComponentStyles
        ? classNames.subComponentStyles.persona
        : undefined;
    var personaCoinStyles = classNames.subComponentStyles
        ? classNames.subComponentStyles.personaCoin
        : undefined;
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root, "data-is-focusable": !disabled, "data-is-sub-focuszone": true, "data-selection-index": index, role: 'listitem', "aria-labelledby": 'selectedItemPersona-' + itemId },
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_3__["Persona"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ size: _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaSize"].size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))),
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"], { onClick: onRemoveItem, disabled: disabled, iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel })));
};
var PeoplePickerItem = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(PeoplePickerItemBase, _PeoplePickerItem_styles__WEBPACK_IMPORTED_MODULE_6__["getStyles"], undefined, { scope: 'PeoplePickerItem' });


/***/ }),

/***/ "./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Button_BaseButton_classNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Button/BaseButton.classNames.js");


var GlobalClassNames = {
    root: 'ms-PickerPersona-container',
    itemContent: 'ms-PickerItem-content',
    removeButton: 'ms-PickerItem-removeButton',
    isSelected: 'is-selected',
    isInvalid: 'is-invalid'
};
var REMOVE_BUTTON_SIZE = 24;
function getStyles(props) {
    var _a, _b, _c, _d, _e, _f, _g;
    var className = props.className, theme = props.theme, selected = props.selected, invalid = props.invalid, disabled = props.disabled;
    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var personaPrimaryTextStyles = [
        selected &&
            !invalid &&
            !disabled && {
            color: palette.white,
            selectors: (_a = {},
                _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'HighlightText'
                },
                _a)
        },
        ((invalid && !selected) || (invalid && selected && disabled)) && {
            color: palette.redDark,
            borderBottom: "2px dotted " + palette.redDark,
            selectors: (_b = {},
                _b["." + classNames.root + ":hover &"] = {
                    // override Persona root:hover selector
                    color: palette.redDark
                },
                _b)
        },
        invalid &&
            selected &&
            !disabled && {
            color: palette.white,
            borderBottom: "2px dotted " + palette.white
        },
        disabled && {
            selectors: (_c = {},
                _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                    color: 'GrayText'
                },
                _c)
        }
    ];
    var personaCoinInitialsStyles = [
        invalid && {
            fontSize: fonts.xLarge.fontSize
        }
    ];
    return {
        root: [
            classNames.root,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme, { inset: -2 }),
            {
                borderRadius: 15,
                display: 'inline-flex',
                alignItems: 'center',
                background: palette.neutralLighter,
                margin: '1px 2px',
                cursor: 'default',
                userSelect: 'none',
                maxWidth: 300,
                verticalAlign: 'middle',
                minWidth: 0,
                selectors: (_d = {
                        ':hover': {
                            background: !selected && !disabled ? palette.neutralLight : ''
                        }
                    },
                    _d[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = [{ border: '1px solid WindowText' }, disabled && { borderColor: 'GrayText' }],
                    _d)
            },
            selected &&
                !disabled && [
                classNames.isSelected,
                {
                    background: palette.themePrimary,
                    selectors: (_e = {},
                        _e[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            borderColor: 'HighLight',
                            background: 'Highlight',
                            MsHighContrastAdjust: 'none'
                        },
                        _e)
                }
            ],
            invalid && [classNames.isInvalid],
            invalid &&
                selected &&
                !disabled && {
                background: palette.redDark
            },
            className
        ],
        itemContent: [
            classNames.itemContent,
            {
                flex: '0 1 auto',
                minWidth: 0,
                // CSS below is needed for IE 11 to properly truncate long persona names in the picker
                // and to clip the presence indicator (in all browsers)
                maxWidth: '100%',
                overflow: 'hidden'
            }
        ],
        removeButton: [
            classNames.removeButton,
            {
                borderRadius: 15,
                color: palette.neutralPrimary,
                flex: '0 0 auto',
                width: REMOVE_BUTTON_SIZE,
                height: REMOVE_BUTTON_SIZE,
                flexBasis: REMOVE_BUTTON_SIZE,
                selectors: {
                    ':hover': {
                        background: palette.neutralTertiaryAlt,
                        color: palette.neutralDark
                    }
                }
            },
            selected && [
                {
                    color: palette.white,
                    selectors: (_f = {
                            ':hover': {
                                color: palette.white,
                                background: palette.themeDark
                            },
                            ':active': {
                                color: palette.white,
                                background: palette.themeDarker
                            }
                        },
                        _f[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            color: 'HighlightText'
                        },
                        _f)
                },
                invalid && {
                    selectors: {
                        ':hover': {
                            background: palette.red
                        },
                        ':active': {
                            background: palette.redDark
                        }
                    }
                }
            ],
            disabled && {
                selectors: (_g = {},
                    _g["." + _Button_BaseButton_classNames__WEBPACK_IMPORTED_MODULE_1__["ButtonGlobalClassNames"].msButtonIcon] = {
                        color: semanticColors.buttonText
                    },
                    _g)
            }
        ],
        subComponentStyles: {
            persona: {
                primaryText: personaPrimaryTextStyles
            },
            personaCoin: {
                initials: personaCoinInitialsStyles
            }
        }
    };
}


/***/ }),

/***/ "./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestionBase", function() { return PeoplePickerItemSuggestionBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestion", function() { return PeoplePickerItemSuggestion; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Persona.js");
/* harmony import */ var _PeoplePickerItemSuggestion_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js");





var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var PeoplePickerItemSuggestionBase = function (props) {
    var personaProps = props.personaProps, suggestionsProps = props.suggestionsProps, compact = props.compact, styles = props.styles, theme = props.theme, className = props.className;
    var classNames = getClassNames(styles, {
        theme: theme,
        className: (suggestionsProps && suggestionsProps.suggestionsItemClassName) || className
    });
    var personaStyles = classNames.subComponentStyles && classNames.subComponentStyles.persona
        ? classNames.subComponentStyles.persona
        : undefined;
    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
        react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Persona__WEBPACK_IMPORTED_MODULE_3__["Persona"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ size: _Persona__WEBPACK_IMPORTED_MODULE_3__["PersonaSize"].size24, styles: personaStyles, className: classNames.personaWrapper, showSecondaryText: !compact }, personaProps))));
};
var PeoplePickerItemSuggestion = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(PeoplePickerItemSuggestionBase, _PeoplePickerItemSuggestion_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"], undefined, { scope: 'PeoplePickerItemSuggestion' });


/***/ }),

/***/ "./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Suggestions_SuggestionsItem_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsItem.styles.js");


var GlobalClassNames = {
    root: 'ms-PeoplePicker-personaContent',
    personaWrapper: 'ms-PeoplePicker-Persona'
};
function getStyles(props) {
    var _a, _b, _c;
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var textSelectorsStyles = {
        selectors: (_a = {},
            _a["." + _Suggestions_SuggestionsItem_styles__WEBPACK_IMPORTED_MODULE_1__["SuggestionsItemGlobalClassNames"].isSuggested + " &"] = {
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'HighlightText'
                    },
                    _b)
            },
            _a["." + classNames.root + ":hover &"] = {
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'HighlightText'
                    },
                    _c)
            },
            _a)
    };
    return {
        root: [
            classNames.root,
            {
                width: '100%',
                padding: '4px 12px'
            },
            className
        ],
        personaWrapper: [
            classNames.personaWrapper,
            {
                width: 180
            }
        ],
        subComponentStyles: {
            persona: {
                primaryText: textSelectorsStyles,
                secondaryText: textSelectorsStyles
            }
        }
    };
}


/***/ }),

/***/ "./lib/components/pickers/Suggestions/Suggestions.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Suggestions", function() { return Suggestions; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Spinner.js");
/* harmony import */ var _Announced__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Announced.js");
/* harmony import */ var _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.types.js");
/* harmony import */ var _SuggestionsItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsItem.js");
/* harmony import */ var _SuggestionsItem_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsItem.styles.js");
/* harmony import */ var _Suggestions_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.scss.js");










var legacyStyles = _Suggestions_scss__WEBPACK_IMPORTED_MODULE_9__;
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var StyledSuggestionsItem = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(_SuggestionsItem__WEBPACK_IMPORTED_MODULE_7__["SuggestionsItem"], _SuggestionsItem_styles__WEBPACK_IMPORTED_MODULE_8__["getStyles"], undefined, { scope: 'SuggestionItem' });
/**
 * {@docCategory Pickers}
 */
var Suggestions = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Suggestions, _super);
    function Suggestions(suggestionsProps) {
        var _this = _super.call(this, suggestionsProps) || this;
        _this._forceResolveButton = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._searchForMoreButton = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        _this._selectedElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /**
         * Returns true if the event was handled, false otherwise
         */
        _this.tryHandleKeyDown = function (keyCode, currentSuggestionIndex) {
            var isEventHandled = false;
            var newSelectedActionType = null;
            var currentSelectedAction = _this.state.selectedActionType;
            var suggestionLength = _this.props.suggestions.length;
            if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].down) {
                switch (currentSelectedAction) {
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve:
                        if (suggestionLength > 0) {
                            _this._refocusOnSuggestions(keyCode);
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none;
                        }
                        else if (_this._searchForMoreButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore;
                        }
                        else {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve;
                        }
                        break;
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore:
                        if (_this._forceResolveButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve;
                        }
                        else if (suggestionLength > 0) {
                            _this._refocusOnSuggestions(keyCode);
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none;
                        }
                        else {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore;
                        }
                        break;
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none:
                        if (currentSuggestionIndex === -1 && _this._forceResolveButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve;
                        }
                        break;
                }
            }
            else if (keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].up) {
                switch (currentSelectedAction) {
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve:
                        if (_this._searchForMoreButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore;
                        }
                        else if (suggestionLength > 0) {
                            _this._refocusOnSuggestions(keyCode);
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none;
                        }
                        break;
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore:
                        if (suggestionLength > 0) {
                            _this._refocusOnSuggestions(keyCode);
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none;
                        }
                        else if (_this._forceResolveButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve;
                        }
                        break;
                    case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none:
                        if (currentSuggestionIndex === -1 && _this._searchForMoreButton.current) {
                            newSelectedActionType = _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore;
                        }
                        break;
                }
            }
            if (newSelectedActionType !== null) {
                _this.setState({ selectedActionType: newSelectedActionType });
                isEventHandled = true;
            }
            return isEventHandled;
        };
        _this._getAlertText = function () {
            var _a = _this.props, isLoading = _a.isLoading, isSearching = _a.isSearching, suggestions = _a.suggestions, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText, noResultsFoundText = _a.noResultsFoundText;
            if (!isLoading && !isSearching) {
                if (suggestions.length > 0) {
                    return suggestionsAvailableAlertText || '';
                }
                if (noResultsFoundText) {
                    return noResultsFoundText;
                }
            }
            return '';
        };
        _this._getMoreResults = function () {
            if (_this.props.onGetMoreResults) {
                _this.props.onGetMoreResults();
            }
        };
        _this._forceResolve = function () {
            if (_this.props.createGenericItem) {
                _this.props.createGenericItem();
            }
        };
        _this._shouldShowForceResolve = function () {
            return _this.props.showForceResolve ? _this.props.showForceResolve() : false;
        };
        _this._onClickTypedSuggestionsItem = function (item, index) {
            return function (ev) {
                _this.props.onSuggestionClick(ev, item, index);
            };
        };
        _this._refocusOnSuggestions = function (keyCode) {
            if (typeof _this.props.refocusSuggestions === 'function') {
                _this.props.refocusSuggestions(keyCode);
            }
        };
        _this._onRemoveTypedSuggestionsItem = function (item, index) {
            return function (ev) {
                var onSuggestionRemove = _this.props.onSuggestionRemove;
                onSuggestionRemove(ev, item, index);
                ev.stopPropagation();
            };
        };
        _this.state = {
            selectedActionType: _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none
        };
        return _this;
    }
    Suggestions.prototype.componentDidMount = function () {
        this.scrollSelected();
        this.activeSelectedElement = this._selectedElement ? this._selectedElement.current : null;
    };
    Suggestions.prototype.componentDidUpdate = function () {
        // Only scroll to selected element if the selected element has changed. Otherwise do nothing.
        // This prevents some odd behavior where scrolling the active element out of view and clicking on a selected element
        // will trigger a focus event and not give the clicked element the click.
        if (this._selectedElement.current && this.activeSelectedElement !== this._selectedElement.current) {
            this.scrollSelected();
            this.activeSelectedElement = this._selectedElement.current;
        }
    };
    Suggestions.prototype.render = function () {
        var _a, _b;
        var _this = this;
        var _c = this.props, forceResolveText = _c.forceResolveText, mostRecentlyUsedHeaderText = _c.mostRecentlyUsedHeaderText, searchForMoreText = _c.searchForMoreText, className = _c.className, moreSuggestionsAvailable = _c.moreSuggestionsAvailable, noResultsFoundText = _c.noResultsFoundText, suggestions = _c.suggestions, isLoading = _c.isLoading, isSearching = _c.isSearching, loadingText = _c.loadingText, onRenderNoResultFound = _c.onRenderNoResultFound, searchingText = _c.searchingText, isMostRecentlyUsedVisible = _c.isMostRecentlyUsedVisible, resultsMaximumNumber = _c.resultsMaximumNumber, resultsFooterFull = _c.resultsFooterFull, resultsFooter = _c.resultsFooter, _d = _c.isResultsFooterVisible, isResultsFooterVisible = _d === void 0 ? true : _d, suggestionsHeaderText = _c.suggestionsHeaderText, suggestionsClassName = _c.suggestionsClassName, theme = _c.theme, styles = _c.styles, suggestionsListId = _c.suggestionsListId;
        // TODO
        // Clean this up by leaving only the first part after removing support for SASS.
        // Currently we can not remove the SASS styles from Suggestions class because it
        // might be used by consumers separately from pickers extending from BasePicker
        // and have not used the new 'styles' prop. Because it's expecting a type parameter,
        // we can not use the 'styled' function without adding some helpers which can break
        // downstream consumers who did not use the new helpers.
        // We check for 'styles' prop which is going to be injected by the 'styled' HOC
        // in BasePicker when the typed Suggestions class is ready to be rendered. If the check
        // passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),
        // then we just use the old SASS styles instead.
        this._classNames = styles
            ? getClassNames(styles, {
                theme: theme,
                className: className,
                suggestionsClassName: suggestionsClassName,
                forceResolveButtonSelected: this.state.selectedActionType === _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve,
                searchForMoreButtonSelected: this.state.selectedActionType === _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore
            })
            : {
                root: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions', className, legacyStyles.root),
                title: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-title', legacyStyles.suggestionsTitle),
                searchForMoreButton: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-SearchMore-button', legacyStyles.actionButton, (_a = {},
                    _a['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore,
                    _a)),
                forceResolveButton: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-forceResolve-button', legacyStyles.actionButton, (_b = {},
                    _b['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve,
                    _b)),
                suggestionsAvailable: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-suggestionsAvailable', legacyStyles.suggestionsAvailable),
                suggestionsContainer: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-container', legacyStyles.suggestionsContainer, suggestionsClassName),
                noSuggestions: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-none', legacyStyles.suggestionsNone)
            };
        var spinnerStyles = this._classNames.subComponentStyles
            ? this._classNames.subComponentStyles.spinner
            : undefined;
        // TODO: cleanup after refactor of pickers to composition pattern and remove SASS support.
        var spinnerClassNameOrStyles = styles
            ? { styles: spinnerStyles }
            : { className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-spinner', legacyStyles.suggestionsSpinner) };
        var noResults = function () {
            return noResultsFoundText ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: _this._classNames.noSuggestions }, noResultsFoundText) : null;
        };
        // MostRecently Used text should supercede the header text if it's there and available.
        var headerText = suggestionsHeaderText;
        if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {
            headerText = mostRecentlyUsedHeaderText;
        }
        var footerTitle = undefined;
        if (isResultsFooterVisible) {
            footerTitle = suggestions.length >= resultsMaximumNumber ? resultsFooterFull : resultsFooter;
        }
        var hasNoSuggestions = (!suggestions || !suggestions.length) && !isLoading;
        var divProps = hasNoSuggestions || isLoading ? { role: 'dialog', id: suggestionsListId } : {};
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ className: this._classNames.root }, divProps),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Announced__WEBPACK_IMPORTED_MODULE_5__["Announced"], { message: this._getAlertText(), "aria-live": "polite" }),
            headerText ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.title }, headerText) : null,
            forceResolveText && this._shouldShowForceResolve() && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["CommandButton"], { componentRef: this._forceResolveButton, className: this._classNames.forceResolveButton, onClick: this._forceResolve }, forceResolveText)),
            isLoading && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Spinner__WEBPACK_IMPORTED_MODULE_4__["Spinner"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, spinnerClassNameOrStyles, { label: loadingText })),
            hasNoSuggestions ? (onRenderNoResultFound ? onRenderNoResultFound(undefined, noResults) : noResults()) : this._renderSuggestions(),
            searchForMoreText && moreSuggestionsAvailable && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["CommandButton"], { componentRef: this._searchForMoreButton, className: this._classNames.searchForMoreButton, iconProps: { iconName: 'Search' }, onClick: this._getMoreResults }, searchForMoreText)),
            isSearching ? react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Spinner__WEBPACK_IMPORTED_MODULE_4__["Spinner"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, spinnerClassNameOrStyles, { label: searchingText })) : null,
            footerTitle && !moreSuggestionsAvailable && !isMostRecentlyUsedVisible && !isSearching ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.title }, footerTitle(this.props))) : null));
    };
    Suggestions.prototype.hasSuggestedAction = function () {
        return this._searchForMoreButton.current !== undefined || this._forceResolveButton.current !== undefined;
    };
    Suggestions.prototype.hasSuggestedActionSelected = function () {
        return this.state.selectedActionType !== _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].none;
    };
    Suggestions.prototype.executeSelectedAction = function () {
        switch (this.state.selectedActionType) {
            case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve:
                this._forceResolve();
                break;
            case _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore:
                this._getMoreResults();
                break;
        }
    };
    Suggestions.prototype.focusAboveSuggestions = function () {
        if (this._forceResolveButton.current) {
            this.setState({ selectedActionType: _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve });
        }
        else if (this._searchForMoreButton.current) {
            this.setState({ selectedActionType: _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore });
        }
    };
    Suggestions.prototype.focusBelowSuggestions = function () {
        if (this._searchForMoreButton.current) {
            this.setState({ selectedActionType: _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].searchMore });
        }
        else if (this._forceResolveButton.current) {
            this.setState({ selectedActionType: _Suggestions_types__WEBPACK_IMPORTED_MODULE_6__["SuggestionActionType"].forceResolve });
        }
    };
    Suggestions.prototype.focusSearchForMoreButton = function () {
        if (this._searchForMoreButton.current) {
            this._searchForMoreButton.current.focus();
        }
    };
    // TODO get the element to scroll into view properly regardless of direction.
    Suggestions.prototype.scrollSelected = function () {
        if (this._selectedElement.current && this._selectedElement.current.scrollIntoView !== undefined) {
            this._selectedElement.current.scrollIntoView(false);
        }
    };
    Suggestions.prototype._renderSuggestions = function () {
        var _this = this;
        var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, removeSuggestionAriaLabel = _a.removeSuggestionAriaLabel, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, suggestionsContainerAriaLabel = _a.suggestionsContainerAriaLabel, suggestionsListId = _a.suggestionsListId;
        var suggestions = this.props.suggestions;
        var StyledTypedSuggestionsItem = StyledSuggestionsItem;
        var selectedIndex = -1;
        suggestions.some(function (element, index) {
            if (element.selected) {
                selectedIndex = index;
                return true;
            }
            return false;
        });
        if (resultsMaximumNumber) {
            suggestions =
                selectedIndex >= resultsMaximumNumber
                    ? suggestions.slice(selectedIndex - resultsMaximumNumber + 1, selectedIndex + 1)
                    : suggestions.slice(0, resultsMaximumNumber);
        }
        if (suggestions.length === 0) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this._classNames.suggestionsContainer, id: suggestionsListId, role: "listbox", "aria-label": suggestionsContainerAriaLabel }, suggestions.map(function (suggestion, index) { return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: suggestion.selected ? _this._selectedElement : undefined, 
            // tslint:disable-next-line:no-string-literal
            key: suggestion.item['key'] ? suggestion.item['key'] : index, id: 'sug-' + index, "aria-selected": suggestion.selected, role: "option", "aria-label": suggestion.ariaLabel },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](StyledTypedSuggestionsItem, { suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, removeButtonAriaLabel: removeSuggestionAriaLabel, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index) }))); })));
    };
    return Suggestions;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/pickers/Suggestions/Suggestions.scss.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "root", function() { return root; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsItem", function() { return suggestionsItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closeButton", function() { return closeButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsItemIsSuggested", function() { return suggestionsItemIsSuggested; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "itemButton", function() { return itemButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "actionButton", function() { return actionButton; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttonSelected", function() { return buttonSelected; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsTitle", function() { return suggestionsTitle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsContainer", function() { return suggestionsContainer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsNone", function() { return suggestionsNone; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsSpinner", function() { return suggestionsSpinner; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "suggestionsAvailable", function() { return suggestionsAvailable; });
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@microsoft/load-themed-styles/lib/index.js");
/* harmony import */ var _microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__);
/* tslint:disable */

Object(_microsoft_load_themed_styles__WEBPACK_IMPORTED_MODULE_0__["loadStyles"])([{ "rawString": ".root_97f860cb{min-width:260px}.suggestionsItem_97f860cb{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.suggestionsItem_97f860cb:hover{background:" }, { "theme": "neutralLighter", "defaultValue": "#f3f2f1" }, { "rawString": "}.suggestionsItem_97f860cb:hover .closeButton_97f860cb{display:block}.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb{background:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb:hover{background:" }, { "theme": "neutralTertiaryAlt", "defaultValue": "#c8c6c4" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb:hover{background:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast: active){.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb{background:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb .closeButton_97f860cb:hover{background:" }, { "theme": "neutralTertiary", "defaultValue": "#a19f9d" }, { "rawString": ";color:" }, { "theme": "neutralPrimary", "defaultValue": "#323130" }, { "rawString": "}@media screen and (-ms-high-contrast: active){.suggestionsItem_97f860cb.suggestionsItemIsSuggested_97f860cb .itemButton_97f860cb{color:HighlightText}}.suggestionsItem_97f860cb .closeButton_97f860cb{display:none;color:" }, { "theme": "neutralSecondary", "defaultValue": "#605e5c" }, { "rawString": "}.suggestionsItem_97f860cb .closeButton_97f860cb:hover{background:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}.actionButton_97f860cb{background-color:transparent;border:0;cursor:pointer;margin:0;position:relative;border-top:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";height:40px;width:100%;font-size:12px}[dir='ltr'] .actionButton_97f860cb{padding-left:8px}[dir='rtl'] .actionButton_97f860cb{padding-right:8px}html[dir='ltr'] .actionButton_97f860cb{text-align:left}html[dir='rtl'] .actionButton_97f860cb{text-align:right}.actionButton_97f860cb:hover{background-color:" }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": ";cursor:pointer}.actionButton_97f860cb:focus,.actionButton_97f860cb:active{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.actionButton_97f860cb .ms-Button-icon{font-size:16px;width:25px}.actionButton_97f860cb .ms-Button-label{margin:0 4px 0 9px}html[dir='rtl'] .actionButton_97f860cb .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_97f860cb{background-color:" }, { "theme": "themeLight", "defaultValue": "#c7e0f4" }, { "rawString": "}.suggestionsTitle_97f860cb{padding:0 12px;color:" }, { "theme": "themePrimary", "defaultValue": "#0078d4" }, { "rawString": ";font-size:12px;line-height:40px;border-bottom:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}.suggestionsContainer_97f860cb{overflow-y:auto;overflow-x:hidden;max-height:300px;border-bottom:1px solid " }, { "theme": "neutralLight", "defaultValue": "#edebe9" }, { "rawString": "}.suggestionsNone_97f860cb{text-align:center;color:#797775;font-size:12px;line-height:30px}.suggestionsSpinner_97f860cb{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir='ltr'] .suggestionsSpinner_97f860cb{padding-left:14px}html[dir='rtl'] .suggestionsSpinner_97f860cb{padding-right:14px}html[dir='ltr'] .suggestionsSpinner_97f860cb{text-align:left}html[dir='rtl'] .suggestionsSpinner_97f860cb{text-align:right}.suggestionsSpinner_97f860cb .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_97f860cb .ms-Spinner-label{display:inline-block;margin:0px 10px 0 16px;vertical-align:middle}html[dir='rtl'] .suggestionsSpinner_97f860cb .ms-Spinner-label{margin:0px 16px 0 10px}.itemButton_97f860cb.itemButton_97f860cb{width:100%;padding:0px;min-width:0;height:100%}@media screen and (-ms-high-contrast: active){.itemButton_97f860cb.itemButton_97f860cb{color:WindowText}}.itemButton_97f860cb.itemButton_97f860cb:hover{color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.closeButton_97f860cb.closeButton_97f860cb{padding:0 4px;height:auto;width:32px}@media screen and (-ms-high-contrast: active){.closeButton_97f860cb.closeButton_97f860cb{color:WindowText}}.closeButton_97f860cb.closeButton_97f860cb:hover{background:" }, { "theme": "neutralTertiaryAlt", "defaultValue": "#c8c6c4" }, { "rawString": ";color:" }, { "theme": "neutralDark", "defaultValue": "#201f1e" }, { "rawString": "}.suggestionsAvailable_97f860cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}\n" }]);
var root = "root_97f860cb";
var suggestionsItem = "suggestionsItem_97f860cb";
var closeButton = "closeButton_97f860cb";
var suggestionsItemIsSuggested = "suggestionsItemIsSuggested_97f860cb";
var itemButton = "itemButton_97f860cb";
var actionButton = "actionButton_97f860cb";
var buttonSelected = "buttonSelected_97f860cb";
var suggestionsTitle = "suggestionsTitle_97f860cb";
var suggestionsContainer = "suggestionsContainer_97f860cb";
var suggestionsNone = "suggestionsNone_97f860cb";
var suggestionsSpinner = "suggestionsSpinner_97f860cb";
var suggestionsAvailable = "suggestionsAvailable_97f860cb";


/***/ }),

/***/ "./lib/components/pickers/Suggestions/Suggestions.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    root: 'ms-Suggestions',
    suggestionsContainer: 'ms-Suggestions-container',
    title: 'ms-Suggestions-title',
    forceResolveButton: 'ms-forceResolve-button',
    searchForMoreButton: 'ms-SearchMore-button',
    spinner: 'ms-Suggestions-spinner',
    noSuggestions: 'ms-Suggestions-none',
    suggestionsAvailable: 'ms-Suggestions-suggestionsAvailable',
    isSelected: 'is-selected'
};
function getStyles(props) {
    var className = props.className, suggestionsClassName = props.suggestionsClassName, theme = props.theme, forceResolveButtonSelected = props.forceResolveButtonSelected, searchForMoreButtonSelected = props.searchForMoreButtonSelected;
    var palette = theme.palette, fonts = theme.fonts;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    var actionButtonStyles = {
        backgroundColor: 'transparent',
        border: 0,
        cursor: 'pointer',
        margin: 0,
        paddingLeft: 8,
        position: 'relative',
        borderTop: "1px solid " + palette.neutralLight,
        height: 40,
        textAlign: 'left',
        width: '100%',
        fontSize: fonts.small.fontSize,
        selectors: {
            ':hover': {
                backgroundColor: palette.neutralLight,
                cursor: 'pointer'
            },
            ':focus, :active': {
                backgroundColor: palette.themeLight
            },
            '.ms-Button-icon': {
                fontSize: fonts.mediumPlus.fontSize,
                width: 25
            },
            '.ms-Button-label': {
                margin: '0 4px 0 9px'
            }
        }
    };
    var actionButtonSelectedStyles = {
        backgroundColor: palette.themeLight
    };
    return {
        root: [
            classNames.root,
            {
                minWidth: 260
            },
            className
        ],
        suggestionsContainer: [
            classNames.suggestionsContainer,
            {
                overflowY: 'auto',
                overflowX: 'hidden',
                maxHeight: 300
            },
            suggestionsClassName
        ],
        title: [
            classNames.title,
            {
                padding: '0 12px',
                fontSize: fonts.small.fontSize,
                color: palette.themePrimary,
                lineHeight: 40,
                borderBottom: "1px solid " + palette.neutralLight
            }
        ],
        forceResolveButton: [
            classNames.forceResolveButton,
            actionButtonStyles,
            forceResolveButtonSelected && [classNames.isSelected, actionButtonSelectedStyles]
        ],
        searchForMoreButton: [
            classNames.searchForMoreButton,
            actionButtonStyles,
            searchForMoreButtonSelected && [classNames.isSelected, actionButtonSelectedStyles]
        ],
        noSuggestions: [
            classNames.noSuggestions,
            {
                textAlign: 'center',
                color: palette.neutralSecondary,
                fontSize: fonts.small.fontSize,
                lineHeight: 30
            }
        ],
        suggestionsAvailable: [classNames.suggestionsAvailable, _Styling__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]],
        subComponentStyles: {
            spinner: {
                root: [
                    classNames.spinner,
                    {
                        margin: '5px 0',
                        paddingLeft: 14,
                        textAlign: 'left',
                        whiteSpace: 'nowrap',
                        lineHeight: 20,
                        fontSize: fonts.small.fontSize
                    }
                ],
                circle: {
                    display: 'inline-block',
                    verticalAlign: 'middle'
                },
                label: {
                    display: 'inline-block',
                    verticalAlign: 'middle',
                    margin: '0 10px 0 16px'
                }
            }
        }
    };
}


/***/ }),

/***/ "./lib/components/pickers/Suggestions/Suggestions.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionActionType", function() { return SuggestionActionType; });
/**
 * Enum to help identify which suggestions action button is selected.
 * {@docCategory Pickers}
 */
var SuggestionActionType;
(function (SuggestionActionType) {
    /** None of the actions is selected. */
    SuggestionActionType[SuggestionActionType["none"] = 0] = "none";
    /** ForceResolve action is selected. */
    SuggestionActionType[SuggestionActionType["forceResolve"] = 1] = "forceResolve";
    /** SearchMore action is selected. */
    SuggestionActionType[SuggestionActionType["searchMore"] = 2] = "searchMore";
})(SuggestionActionType || (SuggestionActionType = {}));


/***/ }),

/***/ "./lib/components/pickers/Suggestions/SuggestionsController.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsController", function() { return SuggestionsController; });
/**
 * {@docCategory Pickers}
 */
var SuggestionsController = /** @class */ (function () {
    function SuggestionsController() {
        var _this = this;
        this._isSuggestionModel = function (value) {
            return value.item !== undefined;
        };
        this._ensureSuggestionModel = function (suggestion) {
            if (_this._isSuggestionModel(suggestion)) {
                return suggestion;
            }
            else {
                return {
                    item: suggestion,
                    selected: false,
                    ariaLabel: suggestion.name || suggestion.primaryText
                };
            }
        };
        this.suggestions = [];
        this.currentIndex = -1;
    }
    SuggestionsController.prototype.updateSuggestions = function (newSuggestions, selectedIndex) {
        if (newSuggestions && newSuggestions.length > 0) {
            this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);
            this.currentIndex = selectedIndex ? selectedIndex : 0;
            if (selectedIndex === -1) {
                this.currentSuggestion = undefined;
            }
            else if (selectedIndex !== undefined) {
                this.suggestions[selectedIndex].selected = true;
                this.currentSuggestion = this.suggestions[selectedIndex];
            }
        }
        else {
            this.suggestions = [];
            this.currentIndex = -1;
            this.currentSuggestion = undefined;
        }
    };
    /**
     * Increments the suggestion index and gets the next suggestion in the list.
     */
    SuggestionsController.prototype.nextSuggestion = function () {
        if (this.suggestions && this.suggestions.length) {
            if (this.currentIndex < this.suggestions.length - 1) {
                this.setSelectedSuggestion(this.currentIndex + 1);
                return true;
            }
            else if (this.currentIndex === this.suggestions.length - 1) {
                this.setSelectedSuggestion(0);
                return true;
            }
        }
        return false;
    };
    /**
     * Decrements the suggestion index and gets the previous suggestion in the list.
     */
    SuggestionsController.prototype.previousSuggestion = function () {
        if (this.suggestions && this.suggestions.length) {
            if (this.currentIndex > 0) {
                this.setSelectedSuggestion(this.currentIndex - 1);
                return true;
            }
            else if (this.currentIndex === 0) {
                this.setSelectedSuggestion(this.suggestions.length - 1);
                return true;
            }
        }
        return false;
    };
    SuggestionsController.prototype.getSuggestions = function () {
        return this.suggestions;
    };
    SuggestionsController.prototype.getCurrentItem = function () {
        return this.currentSuggestion;
    };
    SuggestionsController.prototype.getSuggestionAtIndex = function (index) {
        return this.suggestions[index];
    };
    SuggestionsController.prototype.hasSelectedSuggestion = function () {
        return this.currentSuggestion ? true : false;
    };
    SuggestionsController.prototype.removeSuggestion = function (index) {
        this.suggestions.splice(index, 1);
    };
    SuggestionsController.prototype.createGenericSuggestion = function (itemToConvert) {
        var itemToAdd = this.convertSuggestionsToSuggestionItems([itemToConvert])[0];
        this.currentSuggestion = itemToAdd;
    };
    SuggestionsController.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {
        return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];
    };
    SuggestionsController.prototype.deselectAllSuggestions = function () {
        if (this.currentIndex > -1) {
            this.suggestions[this.currentIndex].selected = false;
            this.currentIndex = -1;
        }
    };
    SuggestionsController.prototype.setSelectedSuggestion = function (index) {
        if (index > this.suggestions.length - 1 || index < 0) {
            this.currentIndex = 0;
            this.currentSuggestion.selected = false;
            this.currentSuggestion = this.suggestions[0];
            this.currentSuggestion.selected = true;
        }
        else {
            if (this.currentIndex > -1) {
                this.suggestions[this.currentIndex].selected = false;
            }
            this.suggestions[index].selected = true;
            this.currentIndex = index;
            this.currentSuggestion = this.suggestions[index];
        }
    };
    return SuggestionsController;
}());



/***/ }),

/***/ "./lib/components/pickers/Suggestions/SuggestionsItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItem", function() { return SuggestionsItem; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _Suggestions_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.scss.js");





var legacyStyles = _Suggestions_scss__WEBPACK_IMPORTED_MODULE_4__;
var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
/**
 * {@docCategory Pickers}
 */
var SuggestionsItem = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SuggestionsItem, _super);
    function SuggestionsItem() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    SuggestionsItem.prototype.render = function () {
        var _a;
        var _b = this.props, suggestionModel = _b.suggestionModel, RenderSuggestion = _b.RenderSuggestion, onClick = _b.onClick, className = _b.className, onRemoveItem = _b.onRemoveItem, isSelectedOverride = _b.isSelectedOverride, removeButtonAriaLabel = _b.removeButtonAriaLabel, styles = _b.styles, theme = _b.theme;
        // TODO
        // Clean this up by leaving only the first part after removing support for SASS.
        // Currently we can not remove the SASS styles from SuggestionsItem class because it
        // might be used by consumers separately from pickers extending from BasePicker
        // and have not used the new 'styles' prop. Because it's expecting a type parameter,
        // we can not use the 'styled' function without adding some helpers which can break
        // downstream consumers who did not use the new helpers.
        // We check for 'styles' prop which is going to be injected by the 'styled' HOC
        // in Suggestions when the typed SuggestionsItem class is ready to be rendered. If the
        // check passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),
        // then we just use the old SASS styles instead.
        var classNames = styles
            ? getClassNames(styles, {
                theme: theme,
                className: className,
                suggested: suggestionModel.selected || isSelectedOverride
            })
            : {
                root: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-item', legacyStyles.suggestionsItem, (_a = {},
                    _a['is-suggested ' + legacyStyles.suggestionsItemIsSuggested] = suggestionModel.selected || isSelectedOverride,
                    _a), className),
                itemButton: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-itemButton', legacyStyles.itemButton),
                closeButton: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])('ms-Suggestions-closeButton', legacyStyles.closeButton)
            };
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: classNames.root },
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["CommandButton"], { onClick: onClick, className: classNames.itemButton }, RenderSuggestion(suggestionModel.item, this.props)),
            this.props.showRemoveButton ? (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["IconButton"], { iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, title: removeButtonAriaLabel, ariaLabel: removeButtonAriaLabel, onClick: onRemoveItem, className: classNames.closeButton })) : null));
    };
    return SuggestionsItem;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/components/pickers/Suggestions/SuggestionsItem.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItemGlobalClassNames", function() { return SuggestionsItemGlobalClassNames; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var SuggestionsItemGlobalClassNames = {
    root: 'ms-Suggestions-item',
    itemButton: 'ms-Suggestions-itemButton',
    closeButton: 'ms-Suggestions-closeButton',
    isSuggested: 'is-suggested'
};
function getStyles(props) {
    var _a, _b, _c;
    var className = props.className, theme = props.theme, suggested = props.suggested;
    var palette = theme.palette;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(SuggestionsItemGlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            {
                display: 'flex',
                alignItems: 'stretch',
                boxSizing: 'border-box',
                width: '100%',
                position: 'relative',
                selectors: {
                    '&:hover': {
                        background: palette.neutralLighter
                    },
                    '&:hover .ms-Suggestions-closeButton': {
                        display: 'block'
                    }
                }
            },
            className
        ],
        itemButton: [
            classNames.itemButton,
            {
                width: '100%',
                padding: 0,
                border: 'none',
                height: '100%',
                // Force the item button to be collapsible so it can always shrink
                // to accommodate the close button as a peer in its flex container.
                minWidth: 0,
                // Require for IE11 to truncate the component.
                overflow: 'hidden',
                selectors: (_a = {},
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'WindowText',
                        selectors: {
                            ':hover': {
                                background: 'Highlight',
                                color: 'HighlightText',
                                MsHighContrastAdjust: 'none'
                            }
                        }
                    },
                    _a[':hover'] = {
                        color: palette.neutralDark
                    },
                    _a)
            },
            suggested && [
                classNames.isSuggested,
                {
                    background: palette.neutralLight,
                    selectors: (_b = {
                            ':hover': {
                                background: palette.neutralTertiaryAlt
                            }
                        },
                        _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                            background: 'Highlight',
                            color: 'HighlightText',
                            MsHighContrastAdjust: 'none'
                        },
                        _b)
                }
            ]
        ],
        closeButton: [
            classNames.closeButton,
            {
                display: 'none',
                color: palette.neutralSecondary,
                padding: '0 4px',
                height: 'auto',
                width: 32,
                selectors: (_c = {
                        ':hover, :active': {
                            background: palette.neutralTertiaryAlt,
                            color: palette.neutralDark
                        }
                    },
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'WindowText'
                    },
                    _c)
            },
            suggested && {
                selectors: {
                    ':hover, :active': {
                        background: palette.neutralTertiary,
                        color: palette.neutralPrimary
                    }
                }
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/pickers/TagPicker/TagItem.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagItemBase", function() { return TagItemBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagItem", function() { return TagItem; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Button.js");
/* harmony import */ var _TagItem_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItem.styles.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
/**
 * {@docCategory TagPicker}
 */
var TagItemBase = function (props) {
    var theme = props.theme, styles = props.styles, selected = props.selected, disabled = props.disabled, enableTagFocusInDisabledPicker = props.enableTagFocusInDisabledPicker, children = props.children, className = props.className, index = props.index, onRemoveItem = props.onRemoveItem, removeButtonAriaLabel = props.removeButtonAriaLabel;
    var classNames = getClassNames(styles, {
        theme: theme,
        className: className,
        selected: selected,
        disabled: disabled
    });
    return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.root, role: 'listitem', key: index, "data-selection-index": index, "data-is-focusable": (enableTagFocusInDisabledPicker || !disabled) && true },
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: classNames.text, "aria-label": children }, children),
        react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_2__["IconButton"], { onClick: onRemoveItem, disabled: disabled, iconProps: { iconName: 'Cancel', styles: { root: { fontSize: '12px' } } }, className: classNames.close, ariaLabel: removeButtonAriaLabel })));
};
var TagItem = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["styled"])(TagItemBase, _TagItem_styles__WEBPACK_IMPORTED_MODULE_3__["getStyles"], undefined, { scope: 'TagItem' });


/***/ }),

/***/ "./lib/components/pickers/TagPicker/TagItem.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");
/* harmony import */ var _Button_BaseButton_classNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/Button/BaseButton.classNames.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



var GlobalClassNames = {
    root: 'ms-TagItem',
    text: 'ms-TagItem-text',
    close: 'ms-TagItem-close',
    isSelected: 'is-selected'
};
var TAG_HEIGHT = 26;
function getStyles(props) {
    var _a, _b, _c, _d;
    var className = props.className, theme = props.theme, selected = props.selected, disabled = props.disabled;
    var palette = theme.palette, effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        root: [
            classNames.root,
            fonts.medium,
            Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"])(theme),
            {
                boxSizing: 'content-box',
                flexShrink: '1',
                margin: 2,
                height: TAG_HEIGHT,
                lineHeight: TAG_HEIGHT,
                cursor: 'default',
                userSelect: 'none',
                display: 'flex',
                flexWrap: 'nowrap',
                maxWidth: 300,
                minWidth: 0,
                borderRadius: effects.roundedCorner2,
                color: semanticColors.inputText,
                background: !selected || disabled ? palette.neutralLighter : palette.themePrimary,
                selectors: (_a = {
                        ':hover': [
                            !disabled &&
                                !selected && {
                                color: palette.neutralDark,
                                background: palette.neutralLight,
                                selectors: {
                                    '.ms-TagItem-close': {
                                        color: palette.neutralPrimary
                                    }
                                }
                            },
                            disabled && { background: palette.neutralLighter },
                            selected && !disabled && { background: palette.themePrimary }
                        ]
                    },
                    _a[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        border: "1px solid " + (!selected ? 'WindowText' : 'WindowFrame')
                    },
                    _a)
            },
            disabled && {
                selectors: (_b = {},
                    _b[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        borderColor: 'GrayText'
                    },
                    _b)
            },
            selected &&
                !disabled && [
                classNames.isSelected,
                {
                    color: palette.white
                }
            ],
            className
        ],
        text: [
            classNames.text,
            {
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                whiteSpace: 'nowrap',
                minWidth: 30,
                margin: '0 8px'
            },
            disabled && {
                selectors: (_c = {},
                    _c[_Styling__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]] = {
                        color: 'GrayText'
                    },
                    _c)
            }
        ],
        close: [
            classNames.close,
            {
                color: palette.neutralSecondary,
                width: 30,
                height: '100%',
                flex: '0 0 auto',
                borderRadius: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()
                    ? effects.roundedCorner2 + " 0 0 " + effects.roundedCorner2
                    : "0 " + effects.roundedCorner2 + " " + effects.roundedCorner2 + " 0",
                selectors: {
                    ':hover': {
                        background: palette.neutralQuaternaryAlt,
                        color: palette.neutralPrimary
                    },
                    ':active': {
                        color: palette.white,
                        backgroundColor: palette.themeDark
                    }
                }
            },
            selected && {
                color: palette.white,
                selectors: {
                    ':hover': {
                        color: palette.white,
                        background: palette.themeDark
                    }
                }
            },
            disabled && {
                selectors: (_d = {},
                    _d["." + _Button_BaseButton_classNames__WEBPACK_IMPORTED_MODULE_1__["ButtonGlobalClassNames"].msButtonIcon] = {
                        color: palette.neutralSecondary
                    },
                    _d)
            }
        ]
    };
}


/***/ }),

/***/ "./lib/components/pickers/TagPicker/TagItemSuggestion.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestionBase", function() { return TagItemSuggestionBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestion", function() { return TagItemSuggestion; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _TagItemSuggestion_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItemSuggestion.styles.js");



var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["classNamesFunction"])();
/**
 * {@docCategory TagPicker}
 */
var TagItemSuggestionBase = function (props) {
    var styles = props.styles, theme = props.theme, children = props.children;
    var classNames = getClassNames(styles, {
        theme: theme
    });
    return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classNames.suggestionTextOverflow },
        " ",
        children,
        " ");
};
var TagItemSuggestion = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["styled"])(TagItemSuggestionBase, _TagItemSuggestion_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"], undefined, { scope: 'TagItemSuggestion' });


/***/ }),

/***/ "./lib/components/pickers/TagPicker/TagItemSuggestion.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Styling.js");

var GlobalClassNames = {
    suggestionTextOverflow: 'ms-TagItem-TextOverflow'
};
function getStyles(props) {
    var className = props.className, theme = props.theme;
    var classNames = Object(_Styling__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"])(GlobalClassNames, theme);
    return {
        suggestionTextOverflow: [
            classNames.suggestionTextOverflow,
            {
                overflow: 'hidden',
                textOverflow: 'ellipsis',
                maxWidth: '60vw',
                padding: '6px 12px 7px',
                whiteSpace: 'nowrap'
            },
            className
        ]
    };
}


/***/ }),

/***/ "./lib/components/pickers/TagPicker/TagPicker.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagPickerBase", function() { return TagPickerBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagPicker", function() { return TagPicker; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _BasePicker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/pickers/BasePicker.js");
/* harmony import */ var _BasePicker_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/pickers/BasePicker.styles.js");
/* harmony import */ var _TagItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItem.js");
/* harmony import */ var _TagItemSuggestion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItemSuggestion.js");

/* tslint:disable */

/* tslint:enable */





/**
 * {@docCategory TagPicker}
 */
var TagPickerBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TagPickerBase, _super);
    function TagPickerBase() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    TagPickerBase.defaultProps = {
        onRenderItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TagItem__WEBPACK_IMPORTED_MODULE_5__["TagItem"], tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props), props.item.name); },
        onRenderSuggestionsItem: function (props) { return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_TagItemSuggestion__WEBPACK_IMPORTED_MODULE_6__["TagItemSuggestion"], null, props.name); }
    };
    return TagPickerBase;
}(_BasePicker__WEBPACK_IMPORTED_MODULE_3__["BasePicker"]));

var TagPicker = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["styled"])(TagPickerBase, _BasePicker_styles__WEBPACK_IMPORTED_MODULE_4__["getStyles"], undefined, {
    scope: 'TagPicker'
});


/***/ }),

/***/ "./lib/components/pickers/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Suggestions_Suggestions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suggestions", function() { return _Suggestions_Suggestions__WEBPACK_IMPORTED_MODULE_0__["Suggestions"]; });

/* harmony import */ var _Suggestions_Suggestions_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/components/pickers/Suggestions/Suggestions.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionActionType", function() { return _Suggestions_Suggestions_types__WEBPACK_IMPORTED_MODULE_1__["SuggestionActionType"]; });

/* harmony import */ var _Suggestions_SuggestionsItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItem", function() { return _Suggestions_SuggestionsItem__WEBPACK_IMPORTED_MODULE_2__["SuggestionsItem"]; });

/* harmony import */ var _Suggestions_SuggestionsController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/components/pickers/Suggestions/SuggestionsController.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsController", function() { return _Suggestions_SuggestionsController__WEBPACK_IMPORTED_MODULE_3__["SuggestionsController"]; });

/* harmony import */ var _AutoFill_BaseAutoFill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/components/pickers/AutoFill/BaseAutoFill.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _AutoFill_BaseAutoFill__WEBPACK_IMPORTED_MODULE_4__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _AutoFill_BaseAutoFill__WEBPACK_IMPORTED_MODULE_4__["BaseAutoFill"]; });

/* harmony import */ var _BasePicker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/components/pickers/BasePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePicker", function() { return _BasePicker__WEBPACK_IMPORTED_MODULE_5__["BasePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePickerListBelow", function() { return _BasePicker__WEBPACK_IMPORTED_MODULE_5__["BasePickerListBelow"]; });

/* harmony import */ var _BasePicker_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/components/pickers/BasePicker.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValidationState", function() { return _BasePicker_types__WEBPACK_IMPORTED_MODULE_6__["ValidationState"]; });

/* harmony import */ var _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeoplePicker", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["BasePeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemberListPeoplePicker", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["MemberListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePickerBase", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["NormalPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePickerBase", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["CompactPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePickerBase", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["ListPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createGenericItem", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["createGenericItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePicker", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["NormalPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePicker", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["CompactPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePicker", function() { return _PeoplePicker_PeoplePicker__WEBPACK_IMPORTED_MODULE_7__["ListPeoplePicker"]; });

/* harmony import */ var _PeoplePicker_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemBase", function() { return _PeoplePicker_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_8__["PeoplePickerItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItem", function() { return _PeoplePicker_PeoplePickerItems_PeoplePickerItem__WEBPACK_IMPORTED_MODULE_8__["PeoplePickerItem"]; });

/* harmony import */ var _PeoplePicker_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestionBase", function() { return _PeoplePicker_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_9__["PeoplePickerItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestion", function() { return _PeoplePicker_PeoplePickerItems_PeoplePickerItemSuggestion__WEBPACK_IMPORTED_MODULE_9__["PeoplePickerItemSuggestion"]; });

/* harmony import */ var _TagPicker_TagPicker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/components/pickers/TagPicker/TagPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPickerBase", function() { return _TagPicker_TagPicker__WEBPACK_IMPORTED_MODULE_10__["TagPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPicker", function() { return _TagPicker_TagPicker__WEBPACK_IMPORTED_MODULE_10__["TagPicker"]; });

/* harmony import */ var _TagPicker_TagItem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemBase", function() { return _TagPicker_TagItem__WEBPACK_IMPORTED_MODULE_11__["TagItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItem", function() { return _TagPicker_TagItem__WEBPACK_IMPORTED_MODULE_11__["TagItem"]; });

/* harmony import */ var _TagPicker_TagItemSuggestion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/components/pickers/TagPicker/TagItemSuggestion.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestionBase", function() { return _TagPicker_TagItemSuggestion__WEBPACK_IMPORTED_MODULE_12__["TagItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestion", function() { return _TagPicker_TagItemSuggestion__WEBPACK_IMPORTED_MODULE_12__["TagItemSuggestion"]; });
















/***/ }),

/***/ "./lib/index.bundle.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectableOptionMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowGlobalClassNames", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupSpacer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupSpacer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["initializeIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MarqueeSelection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MarqueeSelection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getPersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PivotItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmeredDetailsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsListBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmeredDetailsListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["assign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filteredAssign", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["filteredAssign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapEnumByName", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mapEnumByName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["shallowCompare"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["values"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setFocusVisibility", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setFocusVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSSR", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setSSR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ActivityItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseAutoFill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Announced", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Announced"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnouncedBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["AnnouncedBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Breadcrumb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BreadcrumbBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Button"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ActionButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CommandBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CommandButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompoundButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CompoundButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DefaultButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MessageBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrimaryButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PrimaryButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["IconButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Calendar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Callout", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Callout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapCallout", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FocusTrapCallout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DirectionalHint"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Check", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Check"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCheck", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CheckBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Checkbox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CheckboxBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroup", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ChoiceGroupOption"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Coachmark", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Coachmark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_ATTRIBUTE_NAME", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["COACHMARK_ATTRIBUTE_NAME"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CoachmarkBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CoachmarkBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shade", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Shade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidShade", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isValidShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDark", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isDark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getShade", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBackgroundShade", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getBackgroundShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getContrastRatio", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getContrastRatio"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_HUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MIN_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MAX_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HEX_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["RGBA_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["cssColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["rgb2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["clamp"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hsl2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hsl2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hsv2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["rgb2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hsv2hsl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getColorFromString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getColorFromRGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getColorFromHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFullColorString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["updateSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["updateH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["updateRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["updateA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["correctRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["correctHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComboBox", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ComboBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualizedComboBox", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["VirtualizedComboBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBar", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CommandBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CommandBarBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenu", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenu"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSubmenuItems", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getSubmenuItems"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canAnyMenuItemsCheck", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["canAnyMenuItemsCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ContextualMenuItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DatePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DatePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CollapseAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeader", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsHeaderBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectAllVisibility", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildColumns", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["buildColumns"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnActionsMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColumnActionsMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConstrainMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ConstrainMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDragEndLocation", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColumnDragEndLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListLayoutMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsListLayoutMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxVisibility", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CheckboxVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsRow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheck", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowFields", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsRowFields"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DetailsColumnBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Dialog"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContentBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogContentBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooter", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooterBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogFooterBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ResponsiveMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DialogType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDivider", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["VerticalDivider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCard", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActions", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardActions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivity", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardActivity"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetails", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardDetails"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocation", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreview", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardPreview"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImage", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardImage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardTitle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogo", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardLogo"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatus", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DocumentCardStatus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Dropdown"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DropdownBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMenuItemType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DropdownMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseExtendedPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseExtendedPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ExtendedPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fabric", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Fabric"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FabricBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowButtonType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["OverflowButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FacepileBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FacepileBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Facepile", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Facepile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseFloatingPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseFloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["createItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsStore", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsStore"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsHeaderFooterItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsHeaderFooterItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsControl", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsControl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsCore", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsCore"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapZone", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FocusTrapZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZone", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneTabbableElements", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FocusZoneTabbableElements"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneDirection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FocusZoneDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Grid"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GridCell"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupedList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedListBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupedListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupHeader", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupFooter", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupShowAll", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GroupShowAll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCard", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HoverCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HoverCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OpenCardMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["OpenCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HoverCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCard", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ExpandingCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCard", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PlainCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCardBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PlainCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Icon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["IconBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["IconType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconContent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getIconContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontIcon", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFontIcon", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageIcon", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ImageIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Image"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ImageBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageFit", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ImageFit"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageCoverStyle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ImageCoverStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageLoadState", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ImageLoadState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keytip", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Keytip"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipData", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KeytipData"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KeytipLayer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KeytipLayerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LabelBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Label"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Layer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LayerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerHost", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LayerHost"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Link"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinkBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LinkBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["List"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollToMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScrollToMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectionZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBar", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MessageBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MessageBarBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MessageBarType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Modal"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ModalBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Nav"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRelativeUrl", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isRelativeUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["NavBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSet", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["OverflowSet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSetBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["OverflowSetBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Overlay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverlayBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["OverlayBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Panel"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PanelType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PanelType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Persona"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaPresence"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoin"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PersonaCoinBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["personaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["personaPresenceSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["sizeBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["sizeToPixels"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["presenceBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suggestions", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Suggestions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionActionType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionActionType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsController", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SuggestionsController"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BasePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePickerListBelow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BasePickerListBelow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValidationState", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ValidationState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BasePeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemberListPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MemberListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["NormalPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CompactPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ListPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createGenericItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["createGenericItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["NormalPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CompactPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestionBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestion", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PeoplePickerItemSuggestion"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestionBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestion", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TagItemSuggestion"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Pivot", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Pivot"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PivotBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkFormat", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PivotLinkFormat"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PivotLinkSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Popup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositioningContainer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PositioningContainer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicator", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ProgressIndicator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicatorBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ProgressIndicatorBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Rating"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["RatingBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["RatingSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroup", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMeasurementCache", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getMeasurementCache"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextResizeGroupStateProvider", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getNextResizeGroupStateProvider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MeasuredContext", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MeasuredContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupDirection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ResizeGroupDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePane", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePane"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePaneBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScrollbarVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneContext", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScrollablePaneContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBox", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SearchBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBoxBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SearchBoxBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAllSelectedOptions", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getAllSelectedOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSelectedItemsList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeopleSelectedItemsList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BasePeopleSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectedPeopleList", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SelectedPeopleList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedSelectedItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ExtendedSelectedItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SeparatorBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SeparatorBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Separator", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Separator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shimmer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Shimmer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsDefaultHeights", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsDefaultHeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLine", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerLine"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLineBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerLineBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerCircle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircleBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerCircleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGap", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerGap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGapBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerGapBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroup", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroupBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ShimmerElementsGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Slider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ONKEYDOWN_TIMEOUT_DURATION", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ONKEYDOWN_TIMEOUT_DURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SliderBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SliderBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardSpinDirection", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KeyboardSpinDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinButton", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SpinButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Spinner"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SpinnerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerSize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SpinnerSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SpinnerType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackItem", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["StackItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stack", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Stack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sticky", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Sticky"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StickyPositionType", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["StickyPositionType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["AnimationClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FontClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColorClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["AnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["AnimationVariables"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DefaultPalette"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DefaultEffects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DefaultFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["registerDefaultFontFaces"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FontWeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["IconFontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["createFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hiddenContentStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["PulsingBeaconAnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ThemeSettingName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["loadTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["createTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["registerOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["removeOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["buildClassMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["registerIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["registerIconAlias"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["unregisterIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setIconOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getIconClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Stylesheet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["concatStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["concatStyleSetsWithProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["fontFace"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["keyframes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPicker", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SwatchColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPickerBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SwatchColorPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCell", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerGridCell"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCellBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ColorPickerGridCellBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubble", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubble"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContentBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TeachingBubbleContentBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Text"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextView", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TextView"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TextStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TextField"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFieldBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TextFieldBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_CHAR", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DEFAULT_MASK_CHAR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextField", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MaskedTextField"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeGenerator", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ThemeGenerator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSlots", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricSlots", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FabricSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SemanticColorSlots", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SemanticColorSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "themeRulesStandardCreator", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["themeRulesStandardCreator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Toggle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToggleBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ToggleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Tooltip"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TooltipBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipDelay", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TooltipDelay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHost", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TooltipHost"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHostBase", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TooltipHostBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipOverflowMode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TooltipOverflowMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Async", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Async"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScroll", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["AutoScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["BaseComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nullRender", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["nullRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DelayedRender", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DelayedRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventGroup", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["EventGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricPerformance", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["FabricPerformance"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GlobalSettings", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["GlobalSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCodes", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Rectangle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendFunction", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["appendFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAriaAttributeValues", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeAriaAttributeValues"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["findIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["find"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createArray", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["createArray"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["toMatrix"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeIndex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["removeIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replaceElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["replaceElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addElementAtIndex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["addElementAtIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["flatten"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arraysEqual", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["arraysEqual"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asAsync", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["asAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNever", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["assertNever"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNamesFunction", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["classNamesFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isControlled", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isControlled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "css", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["css"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizations", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Customizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizer", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Customizer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomizerContext", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["CustomizerContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customizable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["customizable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCustomizations", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeCustomizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeSettings", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScopedSettings", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["mergeScopedSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getWindow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendComponent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["extendComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstFocusable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFirstFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastFocusable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getLastFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstTabbable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFirstTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastTabbable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getLastTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusFirstChild", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["focusFirstChild"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviousElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getPreviousElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getNextElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isElementVisible"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementTabbable", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isElementTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusZone", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isElementFocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusSubZone", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isElementFocusSubZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doesElementContainFocus", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["doesElementContainFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldWrapFocus", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["shouldWrapFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusAsync", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["focusAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusableByIndexPath", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFocusableByIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElementIndexPath", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getElementIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getId"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["resetIds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistMethods", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unhoistMethods", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["unhoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistStatics", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hoistStatics"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeComponentRef", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["initializeComponentRef"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["IsFocusVisibleClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeFocusRects", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["initializeFocusRects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInitials", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getInitials"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDirectionalKeyCode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDirectionalKeyCode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["addDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDistanceBetweenPoints", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getDistanceBetweenPoints"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fitContentToBounds", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["fitContentToBounds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePrecision", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["calculatePrecision"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["precisionRound"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMemoizeWeakMap", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setMemoizeWeakMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetMemoizations", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["resetMemoizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["memoize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeFunction", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["merge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIOS", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isIOS"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMac", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isMac"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasHorizontalOverflow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hasHorizontalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasVerticalOverflow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hasVerticalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasOverflow", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["hasOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementEvents", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["baseElementEvents"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["baseElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "htmlElementProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["htmlElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "labelProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["labelProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audioProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["audioProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "videoProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["videoProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["olProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "liProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["liProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "anchorProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["anchorProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["buttonProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inputProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["inputProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAreaProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["textAreaProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["selectProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "optionProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["optionProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tableProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["tableProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["trProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["thProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tdProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["tdProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colGroupProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["colGroupProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["colProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["formProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iframeProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["iframeProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imgProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["imgProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imageProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["imageProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "divProperties", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["divProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNativeProps", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getNativeProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getResourceUrl", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getResourceUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBaseUrl", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setBaseUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTLSafeKeyCode", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getRTLSafeKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeRequestAnimationFrame", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["safeRequestAnimationFrame"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeSetTimeout", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["safeSetTimeout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_IS_SCROLLABLE_ATTRIBUTE", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DATA_IS_SCROLLABLE_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowScrollOnElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["allowScrollOnElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableBodyScroll", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["disableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableBodyScroll", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["enableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getScrollbarWidth"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["format"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["styled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIE11", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isIE11"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["correctHex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFocusStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["focusClear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFocusOutlineStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getThemedContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelectorWhite"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["HighContrastSelectorBlack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinXXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMaxXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ScreenWidthMinUhfMobile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getScreenSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["normalize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["noWrap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getFadedOverflowStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getPlaceholderStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ZIndexes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["elementContains"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["elementContainsAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["findElementRecursive"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getChildren"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getDocument"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getRect"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["getVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["isVirtualElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "on", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["on"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["portalContainsElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["raiseClick"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DATA_PORTAL_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setPortalAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["warn"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["setWarningCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["warnConditionallyRequiredProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["resetControlledWarnings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["warnControlledUsage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["warnDeprecations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["warnMutuallyExclusive"]; });

/* harmony import */ var _Icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Icons.js");

// Using the default import, include all icon definitions. Products that care
// about bundle size should not be using the main entry, until tree shaking
// is perfected. (Use the top level imports instead.)

Object(_Icons__WEBPACK_IMPORTED_MODULE_1__["initializeIcons"])();


/***/ }),

/***/ "./lib/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ActivityItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/ActivityItem.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityItem", function() { return _ActivityItem__WEBPACK_IMPORTED_MODULE_0__["ActivityItem"]; });

/* harmony import */ var _Autofill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Autofill.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autofill", function() { return _Autofill__WEBPACK_IMPORTED_MODULE_1__["Autofill"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseAutoFill", function() { return _Autofill__WEBPACK_IMPORTED_MODULE_1__["BaseAutoFill"]; });

/* harmony import */ var _Announced__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Announced.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Announced", function() { return _Announced__WEBPACK_IMPORTED_MODULE_2__["Announced"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnouncedBase", function() { return _Announced__WEBPACK_IMPORTED_MODULE_2__["AnnouncedBase"]; });

/* harmony import */ var _Breadcrumb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Breadcrumb.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _Breadcrumb__WEBPACK_IMPORTED_MODULE_3__["Breadcrumb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbBase", function() { return _Breadcrumb__WEBPACK_IMPORTED_MODULE_3__["BreadcrumbBase"]; });

/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Button.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["BaseButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementType", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["ElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonType", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["ButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["Button"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["ActionButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["CommandBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["CommandButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompoundButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["CompoundButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["DefaultButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["MessageBarButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrimaryButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["PrimaryButton"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconButton", function() { return _Button__WEBPACK_IMPORTED_MODULE_4__["IconButton"]; });

/* harmony import */ var _Calendar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/Calendar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Calendar", function() { return _Calendar__WEBPACK_IMPORTED_MODULE_5__["Calendar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return _Calendar__WEBPACK_IMPORTED_MODULE_5__["DayOfWeek"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return _Calendar__WEBPACK_IMPORTED_MODULE_5__["DateRangeType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return _Calendar__WEBPACK_IMPORTED_MODULE_5__["FirstWeekOfYear"]; });

/* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/Callout.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Callout", function() { return _Callout__WEBPACK_IMPORTED_MODULE_6__["Callout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapCallout", function() { return _Callout__WEBPACK_IMPORTED_MODULE_6__["FocusTrapCallout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DirectionalHint", function() { return _Callout__WEBPACK_IMPORTED_MODULE_6__["DirectionalHint"]; });

/* harmony import */ var _Check__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/Check.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Check", function() { return _Check__WEBPACK_IMPORTED_MODULE_7__["Check"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCheck", function() { return _Check__WEBPACK_IMPORTED_MODULE_7__["getCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBase", function() { return _Check__WEBPACK_IMPORTED_MODULE_7__["CheckBase"]; });

/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/Checkbox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return _Checkbox__WEBPACK_IMPORTED_MODULE_8__["Checkbox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxBase", function() { return _Checkbox__WEBPACK_IMPORTED_MODULE_8__["CheckboxBase"]; });

/* harmony import */ var _ChoiceGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/ChoiceGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroup", function() { return _ChoiceGroup__WEBPACK_IMPORTED_MODULE_9__["ChoiceGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupBase", function() { return _ChoiceGroup__WEBPACK_IMPORTED_MODULE_9__["ChoiceGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChoiceGroupOption", function() { return _ChoiceGroup__WEBPACK_IMPORTED_MODULE_9__["ChoiceGroupOption"]; });

/* harmony import */ var _ChoiceGroupOption__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/ChoiceGroupOption.js");
/* empty/unused harmony star reexport *//* harmony import */ var _Coachmark__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/Coachmark.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Coachmark", function() { return _Coachmark__WEBPACK_IMPORTED_MODULE_11__["Coachmark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "COACHMARK_ATTRIBUTE_NAME", function() { return _Coachmark__WEBPACK_IMPORTED_MODULE_11__["COACHMARK_ATTRIBUTE_NAME"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CoachmarkBase", function() { return _Coachmark__WEBPACK_IMPORTED_MODULE_11__["CoachmarkBase"]; });

/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/Color.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shade", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["Shade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidShade", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["isValidShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDark", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["isDark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getShade", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBackgroundShade", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getBackgroundShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getContrastRatio", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getContrastRatio"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_SATURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_HUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_VALUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_RGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_RGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_COLOR_ALPHA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MIN_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MIN_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["MAX_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["HEX_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["RGBA_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["cssColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["rgb2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["clamp"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["hsl2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["hsl2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["hsv2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["hsv2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["rgb2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["hsv2hsl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getColorFromString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getColorFromRGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getColorFromHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["getFullColorString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["updateSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["updateH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["updateRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["updateA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["correctRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["correctHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return _Color__WEBPACK_IMPORTED_MODULE_12__["correctHex"]; });

/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/ColorPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _ColorPicker__WEBPACK_IMPORTED_MODULE_13__["ColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerBase", function() { return _ColorPicker__WEBPACK_IMPORTED_MODULE_13__["ColorPickerBase"]; });

/* harmony import */ var _ComboBox__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/ComboBox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _ComboBox__WEBPACK_IMPORTED_MODULE_14__["SelectableOptionMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComboBox", function() { return _ComboBox__WEBPACK_IMPORTED_MODULE_14__["ComboBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualizedComboBox", function() { return _ComboBox__WEBPACK_IMPORTED_MODULE_14__["VirtualizedComboBox"]; });

/* harmony import */ var _CommandBar__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./lib/CommandBar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBar", function() { return _CommandBar__WEBPACK_IMPORTED_MODULE_15__["CommandBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandBarBase", function() { return _CommandBar__WEBPACK_IMPORTED_MODULE_15__["CommandBarBase"]; });

/* harmony import */ var _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./lib/ContextualMenu.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenu", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["ContextualMenu"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSubmenuItems", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["getSubmenuItems"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canAnyMenuItemsCheck", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["canAnyMenuItemsCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuBase", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["ContextualMenuBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemType", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["ContextualMenuItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItem", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["ContextualMenuItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextualMenuItemBase", function() { return _ContextualMenu__WEBPACK_IMPORTED_MODULE_16__["ContextualMenuItemBase"]; });

/* harmony import */ var _DatePicker__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("./lib/DatePicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return _DatePicker__WEBPACK_IMPORTED_MODULE_17__["DatePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DatePickerBase", function() { return _DatePicker__WEBPACK_IMPORTED_MODULE_17__["DatePickerBase"]; });

/* harmony import */ var _DetailsList__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("./lib/DetailsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowGlobalClassNames", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsRowGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollapseAllVisibility", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["CollapseAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeader", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsHeaderBase", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsHeaderBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectAllVisibility", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["SelectAllVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsList", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListBase", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildColumns", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["buildColumns"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnActionsMode", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["ColumnActionsMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConstrainMode", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["ConstrainMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDragEndLocation", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["ColumnDragEndLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsListLayoutMode", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsListLayoutMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxVisibility", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["CheckboxVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRow", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsRow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowBase", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsRowBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowCheck", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsRowCheck"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsRowFields", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsRowFields"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DetailsColumnBase", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["DetailsColumnBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["SelectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["Selection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _DetailsList__WEBPACK_IMPORTED_MODULE_18__["SelectionZone"]; });

/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("./lib/Dialog.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["Dialog"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogBase", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContent", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogContentBase", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogContentBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooter", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogFooterBase", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogFooterBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["ResponsiveMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogType", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_19__["DialogType"]; });

/* harmony import */ var _Divider__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("./lib/Divider.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDivider", function() { return _Divider__WEBPACK_IMPORTED_MODULE_20__["VerticalDivider"]; });

/* harmony import */ var _DocumentCard__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("./lib/DocumentCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCard", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardType", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActions", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardActions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardActivity", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardActivity"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardDetails", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardDetails"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLocation", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardLocation"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardPreview", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardPreview"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardImage", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardImage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardTitle", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardTitle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardLogo", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardLogo"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DocumentCardStatus", function() { return _DocumentCard__WEBPACK_IMPORTED_MODULE_21__["DocumentCardStatus"]; });

/* harmony import */ var _Dropdown__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("./lib/Dropdown.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return _Dropdown__WEBPACK_IMPORTED_MODULE_22__["Dropdown"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownBase", function() { return _Dropdown__WEBPACK_IMPORTED_MODULE_22__["DropdownBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownMenuItemType", function() { return _Dropdown__WEBPACK_IMPORTED_MODULE_22__["DropdownMenuItemType"]; });

/* harmony import */ var _ExtendedPicker__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("./lib/ExtendedPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPicker", function() { return _ExtendedPicker__WEBPACK_IMPORTED_MODULE_23__["BaseExtendedPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseExtendedPeoplePicker", function() { return _ExtendedPicker__WEBPACK_IMPORTED_MODULE_23__["BaseExtendedPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedPeoplePicker", function() { return _ExtendedPicker__WEBPACK_IMPORTED_MODULE_23__["ExtendedPeoplePicker"]; });

/* harmony import */ var _Fabric__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("./lib/Fabric.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fabric", function() { return _Fabric__WEBPACK_IMPORTED_MODULE_24__["Fabric"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricBase", function() { return _Fabric__WEBPACK_IMPORTED_MODULE_24__["FabricBase"]; });

/* harmony import */ var _Facepile__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("./lib/Facepile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowButtonType", function() { return _Facepile__WEBPACK_IMPORTED_MODULE_25__["OverflowButtonType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FacepileBase", function() { return _Facepile__WEBPACK_IMPORTED_MODULE_25__["FacepileBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Facepile", function() { return _Facepile__WEBPACK_IMPORTED_MODULE_25__["Facepile"]; });

/* harmony import */ var _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("./lib/FloatingPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPicker", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["BaseFloatingPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseFloatingPeoplePicker", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["BaseFloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingPeoplePicker", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["FloatingPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createItem", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["createItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsStore", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["SuggestionsStore"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionItemType", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["SuggestionItemType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsHeaderFooterItem", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["SuggestionsHeaderFooterItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsControl", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["SuggestionsControl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsCore", function() { return _FloatingPicker__WEBPACK_IMPORTED_MODULE_26__["SuggestionsCore"]; });

/* harmony import */ var _FocusTrapZone__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("./lib/FocusTrapZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusTrapZone", function() { return _FocusTrapZone__WEBPACK_IMPORTED_MODULE_27__["FocusTrapZone"]; });

/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("./lib/FocusZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZone", function() { return _FocusZone__WEBPACK_IMPORTED_MODULE_28__["FocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneTabbableElements", function() { return _FocusZone__WEBPACK_IMPORTED_MODULE_28__["FocusZoneTabbableElements"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusZoneDirection", function() { return _FocusZone__WEBPACK_IMPORTED_MODULE_28__["FocusZoneDirection"]; });

/* harmony import */ var _Grid__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("./lib/Grid.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _Grid__WEBPACK_IMPORTED_MODULE_29__["Grid"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _Grid__WEBPACK_IMPORTED_MODULE_29__["GridCell"]; });

/* harmony import */ var _GroupedList__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("./lib/GroupedList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupSpacer", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupSpacer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedList", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupedList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedListBase", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupedListBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupHeader", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupHeader"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupFooter", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupFooter"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupShowAll", function() { return _GroupedList__WEBPACK_IMPORTED_MODULE_30__["GroupShowAll"]; });

/* harmony import */ var _HoverCard__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("./lib/HoverCard.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCard", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["HoverCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardBase", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["HoverCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OpenCardMode", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["OpenCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HoverCardType", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["HoverCardType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCard", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["ExpandingCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardBase", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["ExpandingCardBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandingCardMode", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["ExpandingCardMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCard", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["PlainCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlainCardBase", function() { return _HoverCard__WEBPACK_IMPORTED_MODULE_31__["PlainCardBase"]; });

/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("./lib/Icon.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Icon", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["Icon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconBase", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["IconBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconType", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["IconType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconContent", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["getIconContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontIcon", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["FontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFontIcon", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["getFontIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageIcon", function() { return _Icon__WEBPACK_IMPORTED_MODULE_32__["ImageIcon"]; });

/* harmony import */ var _Icons__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("./lib/Icons.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeIcons", function() { return _Icons__WEBPACK_IMPORTED_MODULE_33__["initializeIcons"]; });

/* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("./lib/Image.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _Image__WEBPACK_IMPORTED_MODULE_34__["Image"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageBase", function() { return _Image__WEBPACK_IMPORTED_MODULE_34__["ImageBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageFit", function() { return _Image__WEBPACK_IMPORTED_MODULE_34__["ImageFit"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageCoverStyle", function() { return _Image__WEBPACK_IMPORTED_MODULE_34__["ImageCoverStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageLoadState", function() { return _Image__WEBPACK_IMPORTED_MODULE_34__["ImageLoadState"]; });

/* harmony import */ var _Keytip__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("./lib/Keytip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keytip", function() { return _Keytip__WEBPACK_IMPORTED_MODULE_35__["Keytip"]; });

/* harmony import */ var _KeytipData__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("./lib/KeytipData.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipData", function() { return _KeytipData__WEBPACK_IMPORTED_MODULE_36__["KeytipData"]; });

/* harmony import */ var _KeytipLayer__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__("./lib/KeytipLayer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayer", function() { return _KeytipLayer__WEBPACK_IMPORTED_MODULE_37__["KeytipLayer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeytipLayerBase", function() { return _KeytipLayer__WEBPACK_IMPORTED_MODULE_37__["KeytipLayerBase"]; });

/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__("./lib/Label.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelBase", function() { return _Label__WEBPACK_IMPORTED_MODULE_38__["LabelBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return _Label__WEBPACK_IMPORTED_MODULE_38__["Label"]; });

/* harmony import */ var _Layer__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__("./lib/Layer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return _Layer__WEBPACK_IMPORTED_MODULE_39__["Layer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerBase", function() { return _Layer__WEBPACK_IMPORTED_MODULE_39__["LayerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerHost", function() { return _Layer__WEBPACK_IMPORTED_MODULE_39__["LayerHost"]; });

/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__("./lib/Link.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return _Link__WEBPACK_IMPORTED_MODULE_40__["Link"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinkBase", function() { return _Link__WEBPACK_IMPORTED_MODULE_40__["LinkBase"]; });

/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__("./lib/List.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "List", function() { return _List__WEBPACK_IMPORTED_MODULE_41__["List"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollToMode", function() { return _List__WEBPACK_IMPORTED_MODULE_41__["ScrollToMode"]; });

/* harmony import */ var _MarqueeSelection__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__("./lib/MarqueeSelection.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MarqueeSelection", function() { return _MarqueeSelection__WEBPACK_IMPORTED_MODULE_42__["MarqueeSelection"]; });

/* harmony import */ var _MessageBar__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__("./lib/MessageBar.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBar", function() { return _MessageBar__WEBPACK_IMPORTED_MODULE_43__["MessageBar"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarBase", function() { return _MessageBar__WEBPACK_IMPORTED_MODULE_43__["MessageBarBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MessageBarType", function() { return _MessageBar__WEBPACK_IMPORTED_MODULE_43__["MessageBarType"]; });

/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__("./lib/Modal.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return _Modal__WEBPACK_IMPORTED_MODULE_44__["Modal"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalBase", function() { return _Modal__WEBPACK_IMPORTED_MODULE_44__["ModalBase"]; });

/* harmony import */ var _Nav__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__("./lib/Nav.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return _Nav__WEBPACK_IMPORTED_MODULE_45__["Nav"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRelativeUrl", function() { return _Nav__WEBPACK_IMPORTED_MODULE_45__["isRelativeUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavBase", function() { return _Nav__WEBPACK_IMPORTED_MODULE_45__["NavBase"]; });

/* harmony import */ var _OverflowSet__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__("./lib/OverflowSet.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSet", function() { return _OverflowSet__WEBPACK_IMPORTED_MODULE_46__["OverflowSet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverflowSetBase", function() { return _OverflowSet__WEBPACK_IMPORTED_MODULE_46__["OverflowSetBase"]; });

/* harmony import */ var _Overlay__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__("./lib/Overlay.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return _Overlay__WEBPACK_IMPORTED_MODULE_47__["Overlay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OverlayBase", function() { return _Overlay__WEBPACK_IMPORTED_MODULE_47__["OverlayBase"]; });

/* harmony import */ var _Panel__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__("./lib/Panel.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return _Panel__WEBPACK_IMPORTED_MODULE_48__["Panel"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PanelType", function() { return _Panel__WEBPACK_IMPORTED_MODULE_48__["PanelType"]; });

/* harmony import */ var _Persona__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__("./lib/Persona.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPersonaInitialsColor", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["getPersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Persona", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["Persona"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaBase", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaSize", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaPresence", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaPresence"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaInitialsColor", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaInitialsColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoin", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaCoin"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PersonaCoinBase", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["PersonaCoinBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaSize", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["personaSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "personaPresenceSize", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["personaPresenceSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeBoolean", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["sizeBoolean"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sizeToPixels", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["sizeToPixels"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "presenceBoolean", function() { return _Persona__WEBPACK_IMPORTED_MODULE_49__["presenceBoolean"]; });

/* harmony import */ var _PersonaCoin__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__("./lib/PersonaCoin.js");
/* empty/unused harmony star reexport *//* harmony import */ var _Pickers__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__("./lib/Pickers.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Suggestions", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["Suggestions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionActionType", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["SuggestionActionType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsItem", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["SuggestionsItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SuggestionsController", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["SuggestionsController"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["BasePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePickerListBelow", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["BasePickerListBelow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValidationState", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["ValidationState"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeoplePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["BasePeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemberListPeoplePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["MemberListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePickerBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["NormalPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePickerBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["CompactPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePickerBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["ListPeoplePickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createGenericItem", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["createGenericItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalPeoplePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["NormalPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CompactPeoplePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["CompactPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListPeoplePicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["ListPeoplePicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["PeoplePickerItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItem", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["PeoplePickerItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestionBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["PeoplePickerItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PeoplePickerItemSuggestion", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["PeoplePickerItemSuggestion"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPickerBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagPicker", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagItemBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItem", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestionBase", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagItemSuggestionBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagItemSuggestion", function() { return _Pickers__WEBPACK_IMPORTED_MODULE_51__["TagItemSuggestion"]; });

/* harmony import */ var _Pivot__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__("./lib/Pivot.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotItem", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_52__["PivotItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Pivot", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_52__["Pivot"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotBase", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_52__["PivotBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkFormat", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_52__["PivotLinkFormat"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PivotLinkSize", function() { return _Pivot__WEBPACK_IMPORTED_MODULE_52__["PivotLinkSize"]; });

/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__("./lib/Popup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _Popup__WEBPACK_IMPORTED_MODULE_53__["Popup"]; });

/* harmony import */ var _PositioningContainer__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__("./lib/PositioningContainer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositioningContainer", function() { return _PositioningContainer__WEBPACK_IMPORTED_MODULE_54__["PositioningContainer"]; });

/* harmony import */ var _ProgressIndicator__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__("./lib/ProgressIndicator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicator", function() { return _ProgressIndicator__WEBPACK_IMPORTED_MODULE_55__["ProgressIndicator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressIndicatorBase", function() { return _ProgressIndicator__WEBPACK_IMPORTED_MODULE_55__["ProgressIndicatorBase"]; });

/* harmony import */ var _Rating__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__("./lib/Rating.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _Rating__WEBPACK_IMPORTED_MODULE_56__["Rating"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingBase", function() { return _Rating__WEBPACK_IMPORTED_MODULE_56__["RatingBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RatingSize", function() { return _Rating__WEBPACK_IMPORTED_MODULE_56__["RatingSize"]; });

/* harmony import */ var _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__("./lib/ResizeGroup.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroup", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["ResizeGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMeasurementCache", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["getMeasurementCache"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextResizeGroupStateProvider", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["getNextResizeGroupStateProvider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MeasuredContext", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["MeasuredContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupBase", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["ResizeGroupBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeGroupDirection", function() { return _ResizeGroup__WEBPACK_IMPORTED_MODULE_57__["ResizeGroupDirection"]; });

/* harmony import */ var _ScrollablePane__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__("./lib/ScrollablePane.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePane", function() { return _ScrollablePane__WEBPACK_IMPORTED_MODULE_58__["ScrollablePane"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneBase", function() { return _ScrollablePane__WEBPACK_IMPORTED_MODULE_58__["ScrollablePaneBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollbarVisibility", function() { return _ScrollablePane__WEBPACK_IMPORTED_MODULE_58__["ScrollbarVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollablePaneContext", function() { return _ScrollablePane__WEBPACK_IMPORTED_MODULE_58__["ScrollablePaneContext"]; });

/* harmony import */ var _SearchBox__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__("./lib/SearchBox.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBox", function() { return _SearchBox__WEBPACK_IMPORTED_MODULE_59__["SearchBox"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchBoxBase", function() { return _SearchBox__WEBPACK_IMPORTED_MODULE_59__["SearchBoxBase"]; });

/* harmony import */ var _SelectableOption__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__("./lib/SelectableOption.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAllSelectedOptions", function() { return _SelectableOption__WEBPACK_IMPORTED_MODULE_60__["getAllSelectedOptions"]; });

/* harmony import */ var _SelectedItemsList__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__("./lib/SelectedItemsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSelectedItemsList", function() { return _SelectedItemsList__WEBPACK_IMPORTED_MODULE_61__["BaseSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasePeopleSelectedItemsList", function() { return _SelectedItemsList__WEBPACK_IMPORTED_MODULE_61__["BasePeopleSelectedItemsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectedPeopleList", function() { return _SelectedItemsList__WEBPACK_IMPORTED_MODULE_61__["SelectedPeopleList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExtendedSelectedItem", function() { return _SelectedItemsList__WEBPACK_IMPORTED_MODULE_61__["ExtendedSelectedItem"]; });

/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__("./lib/Selection.js");
/* empty/unused harmony star reexport *//* harmony import */ var _Separator__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__("./lib/Separator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SeparatorBase", function() { return _Separator__WEBPACK_IMPORTED_MODULE_63__["SeparatorBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Separator", function() { return _Separator__WEBPACK_IMPORTED_MODULE_63__["Separator"]; });

/* harmony import */ var _Shimmer__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__("./lib/Shimmer.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shimmer", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["Shimmer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerBase", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementType", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerElementType"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsDefaultHeights", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerElementsDefaultHeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLine", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerLine"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerLineBase", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerLineBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircle", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerCircle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerCircleBase", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerCircleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGap", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerGap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerGapBase", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerGapBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroup", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerElementsGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmerElementsGroupBase", function() { return _Shimmer__WEBPACK_IMPORTED_MODULE_64__["ShimmerElementsGroupBase"]; });

/* harmony import */ var _ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__("./lib/ShimmeredDetailsList.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsList", function() { return _ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_65__["ShimmeredDetailsList"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShimmeredDetailsListBase", function() { return _ShimmeredDetailsList__WEBPACK_IMPORTED_MODULE_65__["ShimmeredDetailsListBase"]; });

/* harmony import */ var _Slider__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__("./lib/Slider.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _Slider__WEBPACK_IMPORTED_MODULE_66__["Slider"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ONKEYDOWN_TIMEOUT_DURATION", function() { return _Slider__WEBPACK_IMPORTED_MODULE_66__["ONKEYDOWN_TIMEOUT_DURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SliderBase", function() { return _Slider__WEBPACK_IMPORTED_MODULE_66__["SliderBase"]; });

/* harmony import */ var _SpinButton__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__("./lib/SpinButton.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardSpinDirection", function() { return _SpinButton__WEBPACK_IMPORTED_MODULE_67__["KeyboardSpinDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinButton", function() { return _SpinButton__WEBPACK_IMPORTED_MODULE_67__["SpinButton"]; });

/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__("./lib/Spinner.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _Spinner__WEBPACK_IMPORTED_MODULE_68__["Spinner"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerBase", function() { return _Spinner__WEBPACK_IMPORTED_MODULE_68__["SpinnerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerSize", function() { return _Spinner__WEBPACK_IMPORTED_MODULE_68__["SpinnerSize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinnerType", function() { return _Spinner__WEBPACK_IMPORTED_MODULE_68__["SpinnerType"]; });

/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__("./lib/Stack.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackItem", function() { return _Stack__WEBPACK_IMPORTED_MODULE_69__["StackItem"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stack", function() { return _Stack__WEBPACK_IMPORTED_MODULE_69__["Stack"]; });

/* harmony import */ var _Sticky__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__("./lib/Sticky.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sticky", function() { return _Sticky__WEBPACK_IMPORTED_MODULE_70__["Sticky"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StickyPositionType", function() { return _Sticky__WEBPACK_IMPORTED_MODULE_70__["StickyPositionType"]; });

/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__("./lib/Styling.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationClassNames", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["AnimationClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontClassNames", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["FontClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorClassNames", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ColorClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["AnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationVariables", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["AnimationVariables"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultPalette", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["DefaultPalette"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultEffects", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["DefaultEffects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DefaultFontStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["DefaultFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDefaultFontFaces", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["registerDefaultFontFaces"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontSizes", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["FontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FontWeights", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["FontWeights"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconFontSizes", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["IconFontSizes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFontStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["createFontStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hiddenContentStyle", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["hiddenContentStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PulsingBeaconAnimationStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["PulsingBeaconAnimationStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getGlobalClassNames", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getGlobalClassNames"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeSettingName", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ThemeSettingName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadTheme", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["loadTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTheme", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["createTheme"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerOnThemeChangeCallback", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["registerOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOnThemeChangeCallback", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["removeOnThemeChangeCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildClassMap", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["buildClassMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIcon", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getIcon"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIcons", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["registerIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerIconAlias", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["registerIconAlias"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unregisterIcons", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["unregisterIcons"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setIconOptions", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["setIconOptions"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconClassName", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getIconClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectionMode", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["InjectionMode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stylesheet", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["Stylesheet"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSets", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["concatStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatStyleSetsWithProps", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["concatStyleSetsWithProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fontFace", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["fontFace"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["keyframes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyleSets", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["mergeStyleSets"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["mergeStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusStyle", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getFocusStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusClear", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["focusClear"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusOutlineStyle", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getFocusOutlineStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getThemedContext", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getThemedContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelector", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["HighContrastSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorWhite", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["HighContrastSelectorWhite"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HighContrastSelectorBlack", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["HighContrastSelectorBlack"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinSmall", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinMedium", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinXXXLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinXXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxSmall", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMaxSmall"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxMedium", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMaxMedium"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMaxLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMaxXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMaxXXLarge", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMaxXXLarge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenWidthMinUhfMobile", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ScreenWidthMinUhfMobile"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScreenSelector", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getScreenSelector"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalize", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["normalize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noWrap", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["noWrap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFadedOverflowStyle", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getFadedOverflowStyle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPlaceholderStyles", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["getPlaceholderStyles"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZIndexes", function() { return _Styling__WEBPACK_IMPORTED_MODULE_71__["ZIndexes"]; });

/* harmony import */ var _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__("./lib/SwatchColorPicker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPicker", function() { return _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_72__["SwatchColorPicker"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwatchColorPickerBase", function() { return _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_72__["SwatchColorPickerBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCell", function() { return _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_72__["ColorPickerGridCell"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPickerGridCellBase", function() { return _SwatchColorPicker__WEBPACK_IMPORTED_MODULE_72__["ColorPickerGridCellBase"]; });

/* harmony import */ var _TeachingBubble__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__("./lib/TeachingBubble.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubble", function() { return _TeachingBubble__WEBPACK_IMPORTED_MODULE_73__["TeachingBubble"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleBase", function() { return _TeachingBubble__WEBPACK_IMPORTED_MODULE_73__["TeachingBubbleBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContent", function() { return _TeachingBubble__WEBPACK_IMPORTED_MODULE_73__["TeachingBubbleContent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TeachingBubbleContentBase", function() { return _TeachingBubble__WEBPACK_IMPORTED_MODULE_73__["TeachingBubbleContentBase"]; });

/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__("./lib/Text.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _Text__WEBPACK_IMPORTED_MODULE_74__["Text"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextView", function() { return _Text__WEBPACK_IMPORTED_MODULE_74__["TextView"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyles", function() { return _Text__WEBPACK_IMPORTED_MODULE_74__["TextStyles"]; });

/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__("./lib/TextField.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextField", function() { return _TextField__WEBPACK_IMPORTED_MODULE_75__["TextField"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFieldBase", function() { return _TextField__WEBPACK_IMPORTED_MODULE_75__["TextFieldBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_MASK_CHAR", function() { return _TextField__WEBPACK_IMPORTED_MODULE_75__["DEFAULT_MASK_CHAR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextField", function() { return _TextField__WEBPACK_IMPORTED_MODULE_75__["MaskedTextField"]; });

/* harmony import */ var _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__("./lib/ThemeGenerator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeGenerator", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__["ThemeGenerator"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseSlots", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__["BaseSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricSlots", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__["FabricSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SemanticColorSlots", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__["SemanticColorSlots"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "themeRulesStandardCreator", function() { return _ThemeGenerator__WEBPACK_IMPORTED_MODULE_76__["themeRulesStandardCreator"]; });

/* harmony import */ var _Toggle__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__("./lib/Toggle.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toggle", function() { return _Toggle__WEBPACK_IMPORTED_MODULE_77__["Toggle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToggleBase", function() { return _Toggle__WEBPACK_IMPORTED_MODULE_77__["ToggleBase"]; });

/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__("./lib/Tooltip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["Tooltip"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipBase", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["TooltipBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipDelay", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["TooltipDelay"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHost", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["TooltipHost"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipHostBase", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["TooltipHostBase"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipOverflowMode", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_78__["TooltipOverflowMode"]; });

/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__("./lib/Utilities.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["assign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filteredAssign", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["filteredAssign"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapEnumByName", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["mapEnumByName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["shallowCompare"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["values"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setFocusVisibility", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setFocusVisibility"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSSR", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setSSR"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Async", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["Async"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScroll", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["AutoScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["BaseComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nullRender", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["nullRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DelayedRender", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["DelayedRender"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventGroup", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["EventGroup"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabricPerformance", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["FabricPerformance"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GlobalSettings", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["GlobalSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCodes", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["KeyCodes"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["Rectangle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendFunction", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["appendFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAriaAttributeValues", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["mergeAriaAttributeValues"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["findIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["find"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createArray", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["createArray"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toMatrix", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["toMatrix"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeIndex", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["removeIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replaceElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["replaceElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addElementAtIndex", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["addElementAtIndex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["flatten"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arraysEqual", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["arraysEqual"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asAsync", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["asAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertNever", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["assertNever"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNamesFunction", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["classNamesFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isControlled", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isControlled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "css", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["css"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizations", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["Customizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Customizer", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["Customizer"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomizerContext", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["CustomizerContext"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "customizable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["customizable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeCustomizations", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["mergeCustomizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeSettings", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["mergeSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScopedSettings", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["mergeScopedSettings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getWindow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendComponent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["extendComponent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstFocusable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getFirstFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastFocusable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getLastFocusable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFirstTabbable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getFirstTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLastTabbable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getLastTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusFirstChild", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["focusFirstChild"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviousElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getPreviousElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNextElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getNextElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementVisible", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isElementVisible"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementTabbable", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isElementTabbable"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusZone", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isElementFocusZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isElementFocusSubZone", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isElementFocusSubZone"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doesElementContainFocus", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["doesElementContainFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldWrapFocus", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["shouldWrapFocus"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "focusAsync", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["focusAsync"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFocusableByIndexPath", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getFocusableByIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElementIndexPath", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getElementIndexPath"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getId", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getId"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetIds", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["resetIds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistMethods", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["hoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unhoistMethods", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["unhoistMethods"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hoistStatics", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["hoistStatics"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeComponentRef", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["initializeComponentRef"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IsFocusVisibleClassName", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["IsFocusVisibleClassName"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeFocusRects", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["initializeFocusRects"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInitials", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getInitials"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDirectionalKeyCode", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDirectionalKeyCode", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["addDirectionalKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setLanguage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDistanceBetweenPoints", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getDistanceBetweenPoints"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fitContentToBounds", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["fitContentToBounds"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePrecision", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["calculatePrecision"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "precisionRound", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["precisionRound"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMemoizeWeakMap", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setMemoizeWeakMap"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetMemoizations", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["resetMemoizations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["memoize"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeFunction", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["memoizeFunction"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["merge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIOS", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isIOS"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isMac", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isMac"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasHorizontalOverflow", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["hasHorizontalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasVerticalOverflow", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["hasVerticalOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasOverflow", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["hasOverflow"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementEvents", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["baseElementEvents"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "baseElementProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["baseElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "htmlElementProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["htmlElementProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "labelProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["labelProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audioProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["audioProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "videoProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["videoProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["olProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "liProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["liProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "anchorProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["anchorProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["buttonProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inputProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["inputProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAreaProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["textAreaProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["selectProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "optionProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["optionProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tableProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["tableProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["trProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["thProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tdProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["tdProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colGroupProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["colGroupProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["colProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["formProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iframeProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["iframeProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imgProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["imgProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "imageProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["imageProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "divProperties", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["divProperties"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNativeProps", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getNativeProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getResourceUrl", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getResourceUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBaseUrl", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setBaseUrl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTL", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setRTL", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setRTL"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRTLSafeKeyCode", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getRTLSafeKeyCode"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeRequestAnimationFrame", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["safeRequestAnimationFrame"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "safeSetTimeout", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["safeSetTimeout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_IS_SCROLLABLE_ATTRIBUTE", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["DATA_IS_SCROLLABLE_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allowScrollOnElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["allowScrollOnElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableBodyScroll", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["disableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableBodyScroll", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["enableBodyScroll"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getScrollbarWidth"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findScrollableParent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["findScrollableParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "format", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["format"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["styled"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIE11", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isIE11"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContains", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["elementContains"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementContainsAttribute", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["elementContainsAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findElementRecursive", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["findElementRecursive"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChildren", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getChildren"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getDocument"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getParent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRect", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getRect"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVirtualParent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["getVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVirtualElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["isVirtualElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "on", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["on"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "portalContainsElement", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["portalContainsElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "raiseClick", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["raiseClick"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DATA_PORTAL_ATTRIBUTE", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["DATA_PORTAL_ATTRIBUTE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortalAttribute", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setPortalAttribute"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setVirtualParent", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setVirtualParent"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warn", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["warn"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setWarningCallback", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["setWarningCallback"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnConditionallyRequiredProps", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["warnConditionallyRequiredProps"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetControlledWarnings", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["resetControlledWarnings"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnControlledUsage", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["warnControlledUsage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnDeprecations", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["warnDeprecations"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnMutuallyExclusive", function() { return _Utilities__WEBPACK_IMPORTED_MODULE_79__["warnMutuallyExclusive"]; });

/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__("./lib/version.js");



















































// export * from './PersonaPresence'; (Exported as part of Persona)
































/***/ }),

/***/ "./lib/utilities/DraggableZone/DraggableZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DraggableZone", function() { return DraggableZone; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _DraggableZone_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/DraggableZone/DraggableZone.styles.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");




var eventMapping = {
    touch: {
        start: 'touchstart',
        move: 'touchmove',
        stop: 'touchend'
    },
    mouse: {
        start: 'mousedown',
        move: 'mousemove',
        stop: 'mouseup'
    }
};
var DraggableZone = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DraggableZone, _super);
    function DraggableZone(props) {
        var _this = _super.call(this, props) || this;
        _this._currentEventType = eventMapping.mouse;
        _this._events = [];
        _this._onMouseDown = function (event) {
            var onMouseDown = react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(_this.props.children).props.onMouseDown;
            if (onMouseDown) {
                onMouseDown(event);
            }
            _this._currentEventType = eventMapping.mouse;
            return _this._onDragStart(event);
        };
        _this._onMouseUp = function (event) {
            var onMouseUp = react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(_this.props.children).props.onMouseUp;
            if (onMouseUp) {
                onMouseUp(event);
            }
            _this._currentEventType = eventMapping.mouse;
            return _this._onDragStop(event);
        };
        _this._onTouchStart = function (event) {
            var onTouchStart = react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(_this.props.children).props.onTouchStart;
            if (onTouchStart) {
                onTouchStart(event);
            }
            _this._currentEventType = eventMapping.touch;
            return _this._onDragStart(event);
        };
        _this._onTouchEnd = function (event) {
            var onTouchEnd = react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(_this.props.children).props.onTouchEnd;
            if (onTouchEnd) {
                onTouchEnd(event);
            }
            _this._currentEventType = eventMapping.touch;
            _this._onDragStop(event);
        };
        _this._onDragStart = function (event) {
            // Only handle left click for dragging
            if (typeof event.button === 'number' && event.button !== 0) {
                return false;
            }
            // If the target doesn't match the handleSelector OR
            // if the target does match the preventDragSelector, bail out
            if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||
                (_this.props.preventDragSelector && _this._matchesSelector(event.target, _this.props.preventDragSelector))) {
                return;
            }
            // Remember the touch identifier if this is a touch event so we can
            // distinguish between individual touches in multitouch scenarios
            // by remembering which touch point we were given
            _this._touchId = _this._getTouchId(event);
            var position = _this._getControlPosition(event);
            if (position === undefined) {
                return;
            }
            var dragData = _this._createDragDataFromPosition(position);
            _this.props.onStart && _this.props.onStart(event, dragData);
            _this.setState({
                isDragging: true,
                lastPosition: position
            });
            // hook up the appropriate mouse/touch events to the body to ensure
            // smooth dragging
            _this._events = [
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(document.body, _this._currentEventType.move, _this._onDrag),
                Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["on"])(document.body, _this._currentEventType.stop, _this._onDragStop)
            ];
        };
        _this._onDrag = function (event) {
            // Prevent scrolling on mobile devices
            if (event.type === 'touchmove') {
                event.preventDefault();
            }
            var position = _this._getControlPosition(event);
            if (!position) {
                return;
            }
            // create the updated drag data from the position data
            var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));
            var updatedPosition = updatedData.position;
            _this.props.onDragChange && _this.props.onDragChange(event, updatedData);
            _this.setState({
                position: updatedPosition,
                lastPosition: position
            });
        };
        _this._onDragStop = function (event) {
            if (!_this.state.isDragging) {
                return;
            }
            var position = _this._getControlPosition(event);
            if (!position) {
                return;
            }
            var baseDragData = _this._createDragDataFromPosition(position);
            // Set dragging to false and reset the lastPosition
            _this.setState({
                isDragging: false,
                lastPosition: undefined
            });
            _this.props.onStop && _this.props.onStop(event, baseDragData);
            if (_this.props.position) {
                _this.setState({
                    position: _this.props.position
                });
            }
            // Remove event handlers
            _this._events.forEach(function (dispose) { return dispose(); });
        };
        _this.state = {
            isDragging: false,
            position: _this.props.position || { x: 0, y: 0 },
            lastPosition: undefined
        };
        return _this;
    }
    DraggableZone.prototype.componentDidUpdate = function (prevProps) {
        if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {
            this.setState({ position: this.props.position });
        }
    };
    DraggableZone.prototype.componentWillUnmount = function () {
        this._events.forEach(function (dispose) { return dispose(); });
    };
    DraggableZone.prototype.render = function () {
        var child = react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(this.props.children);
        var props = child.props;
        var position = this.props.position;
        var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;
        var x = statePosition.x;
        var y = statePosition.y;
        if (position && !isDragging) {
            x = position.x;
            y = position.y;
        }
        return react__WEBPACK_IMPORTED_MODULE_1__["cloneElement"](child, {
            style: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, props.style, { transform: "translate(" + x + "px, " + y + "px)" }),
            className: Object(_DraggableZone_styles__WEBPACK_IMPORTED_MODULE_2__["getClassNames"])(props.className, this.state.isDragging).root,
            onMouseDown: this._onMouseDown,
            onMouseUp: this._onMouseUp,
            onTouchStart: this._onTouchStart,
            onTouchEnd: this._onTouchEnd
        });
    };
    /**
     * Get the control position based off the event that fired
     * @param event - The event to get offsets from
     */
    DraggableZone.prototype._getControlPosition = function (event) {
        var touchObj = this._getActiveTouch(event);
        // did we get the right touch?
        if (this._touchId !== undefined && !touchObj) {
            return undefined;
        }
        var eventToGetOffset = touchObj || event;
        return {
            x: eventToGetOffset.clientX,
            y: eventToGetOffset.clientY
        };
    };
    /**
     * Get the active touch point that we have saved from the event's TouchList
     * @param event - The event used to get the TouchList for the active touch point
     */
    DraggableZone.prototype._getActiveTouch = function (event) {
        return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||
            (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));
    };
    /**
     * Get the initial touch identifier associated with the given event
     * @param event - The event that contains the TouchList
     */
    DraggableZone.prototype._getTouchId = function (event) {
        var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);
        if (touch) {
            return touch.identifier;
        }
    };
    /**
     * Returns if an element (or any of the element's parents) match the given selector
     */
    DraggableZone.prototype._matchesSelector = function (element, selector) {
        if (!element || element === document.body) {
            return false;
        }
        /* tslint:disable-next-line:no-string-literal */
        var matchesSelectorFn = element.matches || element.webkitMatchesSelector || element.msMatchesSelector /* for IE */;
        if (!matchesSelectorFn) {
            return false;
        }
        return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);
    };
    /**
     * Attempts to find the Touch that matches the identifier  we stored in dragStart
     * @param touchList The TouchList to look for the stored identifier from dragStart
     */
    DraggableZone.prototype._findTouchInTouchList = function (touchList) {
        if (this._touchId === undefined) {
            return;
        }
        for (var i = 0; i < touchList.length; i++) {
            if (touchList[i].identifier === this._touchId) {
                return touchList[i];
            }
        }
        return undefined;
    };
    /**
     * Create DragData based off of the last known position and the new position passed in
     * @param position The new position as part of the drag
     */
    DraggableZone.prototype._createDragDataFromPosition = function (position) {
        var lastPosition = this.state.lastPosition;
        // If we have no lastPosition, use the given position
        // for last position
        if (lastPosition === undefined) {
            return {
                delta: { x: 0, y: 0 },
                lastPosition: position,
                position: position
            };
        }
        return {
            delta: {
                x: position.x - lastPosition.x,
                y: position.y - lastPosition.y
            },
            lastPosition: lastPosition,
            position: position
        };
    };
    /**
     * Creates an updated DragData based off the current position and given baseDragData
     * @param baseDragData The base DragData (gotten from _createDragDataFromPosition) used to calculate the updated positions
     */
    DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {
        var position = this.state.position;
        return {
            position: {
                x: position.x + baseDragData.delta.x,
                y: position.y + baseDragData.delta.y
            },
            delta: baseDragData.delta,
            lastPosition: position
        };
    };
    return DraggableZone;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/utilities/DraggableZone/DraggableZone.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return getClassNames; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Styling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Styling.js");


var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["memoizeFunction"])(function (className, isDragging) {
    return {
        root: Object(_Styling__WEBPACK_IMPORTED_MODULE_1__["mergeStyles"])(className, isDragging && {
            touchAction: 'none',
            selectors: {
                '& *': {
                    userSelect: 'none'
                }
            }
        })
    };
});


/***/ }),

/***/ "./lib/utilities/DraggableZone/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DraggableZone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/DraggableZone/DraggableZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DraggableZone", function() { return _DraggableZone__WEBPACK_IMPORTED_MODULE_0__["DraggableZone"]; });

/* harmony import */ var _DraggableZone_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/DraggableZone/DraggableZone.styles.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getClassNames", function() { return _DraggableZone_styles__WEBPACK_IMPORTED_MODULE_1__["getClassNames"]; });





/***/ }),

/***/ "./lib/utilities/color/_rgbaOrHexString.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_rgbaOrHexString", function() { return _rgbaOrHexString; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");

/**
 * @internal
 * Get a CSS color string from some color components.
 * If `a` is specified and not 100, returns an `rgba()` string.
 * Otherwise returns `hex` prefixed with #.
 */
function _rgbaOrHexString(r, g, b, a, hex) {
    return a === _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"] || typeof a !== 'number' ? "#" + hex : "rgba(" + r + ", " + g + ", " + b + ", " + a / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"] + ")";
}


/***/ }),

/***/ "./lib/utilities/color/clamp.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return clamp; });
/** Clamp a value to ensure it falls within a given range. */
function clamp(value, max, min) {
    if (min === void 0) { min = 0; }
    return value < min ? min : value > max ? max : value;
}


/***/ }),

/***/ "./lib/utilities/color/colors.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_HUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MIN_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["HEX_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return _consts__WEBPACK_IMPORTED_MODULE_0__["RGBA_REGEX"]; });

/* harmony import */ var _cssColor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/cssColor.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return _cssColor__WEBPACK_IMPORTED_MODULE_1__["cssColor"]; });

/* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return _rgb2hex__WEBPACK_IMPORTED_MODULE_2__["rgb2hex"]; });

/* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/clamp.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _clamp__WEBPACK_IMPORTED_MODULE_3__["clamp"]; });

/* harmony import */ var _hsl2rgb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/color/hsl2rgb.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return _hsl2rgb__WEBPACK_IMPORTED_MODULE_4__["hsl2rgb"]; });

/* harmony import */ var _hsl2hsv__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/color/hsl2hsv.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return _hsl2hsv__WEBPACK_IMPORTED_MODULE_5__["hsl2hsv"]; });

/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return _hsv2rgb__WEBPACK_IMPORTED_MODULE_6__["hsv2rgb"]; });

/* harmony import */ var _hsv2hex__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/utilities/color/hsv2hex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return _hsv2hex__WEBPACK_IMPORTED_MODULE_7__["hsv2hex"]; });

/* harmony import */ var _rgb2hsv__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/color/rgb2hsv.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return _rgb2hsv__WEBPACK_IMPORTED_MODULE_8__["rgb2hsv"]; });

/* harmony import */ var _hsv2hsl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/color/hsv2hsl.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return _hsv2hsl__WEBPACK_IMPORTED_MODULE_9__["hsv2hsl"]; });

/* harmony import */ var _getColorFromString__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return _getColorFromString__WEBPACK_IMPORTED_MODULE_10__["getColorFromString"]; });

/* harmony import */ var _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_11__["getColorFromRGBA"]; });

/* harmony import */ var _getColorFromHSV__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/color/getColorFromHSV.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return _getColorFromHSV__WEBPACK_IMPORTED_MODULE_12__["getColorFromHSV"]; });

/* harmony import */ var _getFullColorString__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/utilities/color/getFullColorString.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return _getFullColorString__WEBPACK_IMPORTED_MODULE_13__["getFullColorString"]; });

/* harmony import */ var _updateSV__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/utilities/color/updateSV.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return _updateSV__WEBPACK_IMPORTED_MODULE_14__["updateSV"]; });

/* harmony import */ var _updateH__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./lib/utilities/color/updateH.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return _updateH__WEBPACK_IMPORTED_MODULE_15__["updateH"]; });

/* harmony import */ var _updateRGB__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./lib/utilities/color/updateRGB.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return _updateRGB__WEBPACK_IMPORTED_MODULE_16__["updateRGB"]; });

/* empty/unused harmony star reexport *//* harmony import */ var _updateA__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("./lib/utilities/color/updateA.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return _updateA__WEBPACK_IMPORTED_MODULE_17__["updateA"]; });

/* harmony import */ var _correctRGB__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("./lib/utilities/color/correctRGB.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return _correctRGB__WEBPACK_IMPORTED_MODULE_18__["correctRGB"]; });

/* harmony import */ var _correctHSV__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("./lib/utilities/color/correctHSV.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return _correctHSV__WEBPACK_IMPORTED_MODULE_19__["correctHSV"]; });

/* harmony import */ var _correctHex__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("./lib/utilities/color/correctHex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return _correctHex__WEBPACK_IMPORTED_MODULE_20__["correctHex"]; });

























/***/ }),

/***/ "./lib/utilities/color/consts.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return MAX_COLOR_SATURATION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return MAX_COLOR_HUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return MAX_COLOR_VALUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return MAX_COLOR_RGB; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return MAX_COLOR_RGBA; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return MAX_COLOR_ALPHA; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return MIN_HEX_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return MAX_HEX_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return MIN_RGBA_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return MAX_RGBA_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return HEX_REGEX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return RGBA_REGEX; });
var MAX_COLOR_SATURATION = 100;
var MAX_COLOR_HUE = 359;
var MAX_COLOR_VALUE = 100;
var MAX_COLOR_RGB = 255;
/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */
var MAX_COLOR_RGBA = MAX_COLOR_RGB;
var MAX_COLOR_ALPHA = 100;
/** Minimum length for a hexadecimal color string (not including the #) */
var MIN_HEX_LENGTH = 3;
/** Maximum length for a hexadecimal color string (not including the #) */
var MAX_HEX_LENGTH = 6;
/** Minimum length for a string of an RGBA color component */
var MIN_RGBA_LENGTH = 1;
/** Maximum length for a string of an RGBA color component */
var MAX_RGBA_LENGTH = 3;
/** Regular expression matching only valid hexadecimal chars */
var HEX_REGEX = /^[\da-f]{0,6}$/i;
/** Regular expression matching only numbers */
var RGBA_REGEX = /^\d{0,3}$/;


/***/ }),

/***/ "./lib/utilities/color/correctHSV.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return correctHSV; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/clamp.js");


/** Corrects an HSV color to fall within the valid range. */
function correctHSV(color) {
    return {
        h: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.h, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_HUE"]),
        s: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.s, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"]),
        v: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.v, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"])
    };
}


/***/ }),

/***/ "./lib/utilities/color/correctHex.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return correctHex; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");

/**
 * Corrects a hex color to have length 3 or 6. Defaults to white if too short.
 * Does NOT check anything besides the length (such as valid characters) and does NOT handle
 * hex values starting with # sign.
 */
function correctHex(hex) {
    if (!hex || hex.length < _consts__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]) {
        return 'ffffff'; // not a valid color--default to white
    }
    if (hex.length >= _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]) {
        return hex.substring(0, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]);
    }
    return hex.substring(0, _consts__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]);
}


/***/ }),

/***/ "./lib/utilities/color/correctRGB.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return correctRGB; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/clamp.js");


/** Corrects an RGB color to fall within the valid range.  */
function correctRGB(color) {
    return {
        r: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.r, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]),
        g: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.g, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]),
        b: Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.b, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]),
        a: typeof color.a === 'number' ? Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(color.a, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]) : color.a
    };
}


/***/ }),

/***/ "./lib/utilities/color/cssColor.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return cssColor; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _hsl2rgb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/hsl2rgb.js");


/**
 * Converts a valid CSS color string to an RGB color.
 * Note that hex colors *must* be prefixed with # to be considered valid.
 * Alpha in returned color defaults to 100.
 * Four and eight digit hex values (with alpha) are supported if the current browser supports them.
 */
function cssColor(color) {
    if (!color) {
        return undefined;
    }
    // Need to check the following valid color formats: RGB(A), HSL(A), hex, named color
    // First check for well formatted RGB(A), HSL(A), and hex formats at the start.
    // This is for perf (no creating an element) and catches the intentional "transparent" color
    //   case early on.
    var easyColor = _rgba(color) || _hex6(color) || _hex3(color) || _hsla(color);
    if (easyColor) {
        return easyColor;
    }
    // if the above fails, do the more expensive catch-all
    return _browserCompute(color);
}
/**
 * Uses the browser's getComputedStyle() to determine what the passed-in color is.
 * This assumes _rgba, _hex6, _hex3, and _hsla have already been tried and all failed.
 * This works by attaching an element to the DOM, which may fail in server-side rendering
 *   or with headless browsers.
 */
function _browserCompute(str) {
    if (typeof document === 'undefined') {
        // don't throw an error when used server-side
        return undefined;
    }
    var elem = document.createElement('div');
    elem.style.backgroundColor = str;
    // This element must be attached to the DOM for getComputedStyle() to have a value
    elem.style.position = 'absolute';
    elem.style.top = '-9999px';
    elem.style.left = '-9999px';
    elem.style.height = '1px';
    elem.style.width = '1px';
    document.body.appendChild(elem);
    var eComputedStyle = getComputedStyle(elem);
    var computedColor = eComputedStyle && eComputedStyle.backgroundColor;
    document.body.removeChild(elem);
    // computedColor is always an RGB(A) string, except for invalid colors in IE/Edge which return 'transparent'
    // browsers return one of these if the color string is invalid,
    // so need to differentiate between an actual error and intentionally passing in this color
    if (computedColor === 'rgba(0, 0, 0, 0)' || computedColor === 'transparent') {
        switch (str.trim()) {
            // RGB and HSL were already checked at the start of the function
            case 'transparent':
            case '#0000':
            case '#00000000':
                return { r: 0, g: 0, b: 0, a: 0 };
        }
        return undefined;
    }
    return _rgba(computedColor);
}
/**
 * If `str` is in valid `rgb()` or `rgba()` format, returns an RGB color (alpha defaults to 100).
 * Otherwise returns undefined.
 */
function _rgba(str) {
    if (!str) {
        return undefined;
    }
    var match = str.match(/^rgb(a?)\(([\d., ]+)\)$/);
    if (match) {
        var hasAlpha = !!match[1];
        var expectedPartCount = hasAlpha ? 4 : 3;
        var parts = match[2].split(/ *, */).map(Number);
        if (parts.length === expectedPartCount) {
            return {
                r: parts[0],
                g: parts[1],
                b: parts[2],
                a: hasAlpha ? parts[3] * 100 : _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]
            };
        }
    }
}
/**
 * If `str` is in `hsl()` or `hsla()` format, returns an RGB color (alpha defaults to 100).
 * Otherwise returns undefined.
 */
function _hsla(str) {
    var match = str.match(/^hsl(a?)\(([\d., ]+)\)$/);
    if (match) {
        var hasAlpha = !!match[1];
        var expectedPartCount = hasAlpha ? 4 : 3;
        var parts = match[2].split(/ *, */).map(Number);
        if (parts.length === expectedPartCount) {
            var rgba = Object(_hsl2rgb__WEBPACK_IMPORTED_MODULE_1__["hsl2rgb"])(parts[0], parts[1], parts[2]);
            rgba.a = hasAlpha ? parts[3] * 100 : _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"];
            return rgba;
        }
    }
}
/**
 * If `str` is in valid 6-digit hex format *with* # prefix, returns an RGB color (with alpha 100).
 * Otherwise returns undefined.
 */
function _hex6(str) {
    if ('#' === str[0] && 7 === str.length && /^#[\da-fA-F]{6}$/.test(str)) {
        return {
            r: parseInt(str.slice(1, 3), 16),
            g: parseInt(str.slice(3, 5), 16),
            b: parseInt(str.slice(5, 7), 16),
            a: _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]
        };
    }
}
/**
 * If `str` is in valid 3-digit hex format *with* # prefix, returns an RGB color (with alpha 100).
 * Otherwise returns undefined.
 */
function _hex3(str) {
    if ('#' === str[0] && 4 === str.length && /^#[\da-fA-F]{3}$/.test(str)) {
        return {
            r: parseInt(str[1] + str[1], 16),
            g: parseInt(str[2] + str[2], 16),
            b: parseInt(str[3] + str[3], 16),
            a: _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]
        };
    }
}


/***/ }),

/***/ "./lib/utilities/color/getColorFromHSV.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return getColorFromHSV; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* harmony import */ var _hsv2hex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/hsv2hex.js");
/* harmony import */ var _rgbaOrHexString__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/_rgbaOrHexString.js");




/**
 * Converts an HSV color (and optional alpha value) to a color object.
 * If `a` is not given, a default of 100 is used.
 * Hex in the returned value will *not* be prefixed with #.
 * If `a` is unspecified or 100, the result's `str` property will contain a hex value
 * (*not* prefixed with #)
 */
function getColorFromHSV(hsv, a) {
    var h = hsv.h, s = hsv.s, v = hsv.v;
    a = typeof a === 'number' ? a : _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"];
    var _a = Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_1__["hsv2rgb"])(h, s, v), r = _a.r, g = _a.g, b = _a.b;
    var hex = Object(_hsv2hex__WEBPACK_IMPORTED_MODULE_2__["hsv2hex"])(h, s, v);
    var str = Object(_rgbaOrHexString__WEBPACK_IMPORTED_MODULE_3__["_rgbaOrHexString"])(r, g, b, a, hex);
    return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v };
}


/***/ }),

/***/ "./lib/utilities/color/getColorFromRGBA.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return getColorFromRGBA; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _rgb2hsv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/rgb2hsv.js");
/* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");
/* harmony import */ var _rgbaOrHexString__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/_rgbaOrHexString.js");




/** Converts an RGBA color to a color object (alpha defaults to 100). */
function getColorFromRGBA(rgba) {
    var _a = rgba.a, a = _a === void 0 ? _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"] : _a, b = rgba.b, g = rgba.g, r = rgba.r;
    var _b = Object(_rgb2hsv__WEBPACK_IMPORTED_MODULE_1__["rgb2hsv"])(r, g, b), h = _b.h, s = _b.s, v = _b.v;
    var hex = Object(_rgb2hex__WEBPACK_IMPORTED_MODULE_2__["rgb2hex"])(r, g, b);
    var str = Object(_rgbaOrHexString__WEBPACK_IMPORTED_MODULE_3__["_rgbaOrHexString"])(r, g, b, a, hex);
    return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v };
}


/***/ }),

/***/ "./lib/utilities/color/getColorFromString.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return getColorFromString; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _cssColor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/cssColor.js");
/* harmony import */ var _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");



/**
 * Converts a CSS color string to a color object.
 * Note that hex colors *must* be prefixed with # to be considered valid.
 *
 * `inputColor` will be used unmodified as the `str` property of the returned object.
 * Alpha defaults to 100 if not specified in `inputColor`.
 * Returns undefined if the color string is invalid/not recognized.
 */
function getColorFromString(inputColor) {
    var color = Object(_cssColor__WEBPACK_IMPORTED_MODULE_1__["cssColor"])(inputColor);
    if (!color) {
        return;
    }
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, Object(_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_2__["getColorFromRGBA"])(color), { str: inputColor });
}


/***/ }),

/***/ "./lib/utilities/color/getFullColorString.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return getFullColorString; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _hsv2hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/hsv2hex.js");


/**
 * Converts a color hue to an HTML color string (with # prefix).
 * This implementation ignores all components of `color` except hue.
 */
function getFullColorString(color) {
    return "#" + Object(_hsv2hex__WEBPACK_IMPORTED_MODULE_1__["hsv2hex"])(color.h, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"], _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"]);
}


/***/ }),

/***/ "./lib/utilities/color/hsl2hsv.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return hsl2hsv; });
/** Converts HSL components to an HSV color. */
function hsl2hsv(h, s, l) {
    s *= (l < 50 ? l : 100 - l) / 100;
    var v = l + s;
    return {
        h: h,
        s: v === 0 ? 0 : ((2 * s) / v) * 100,
        v: v
    };
}


/***/ }),

/***/ "./lib/utilities/color/hsl2rgb.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return hsl2rgb; });
/* harmony import */ var _hsl2hsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/hsl2hsv.js");
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");


/** Converts HSL components to an RGB color. Does not set the alpha value. */
function hsl2rgb(h, s, l) {
    var hsv = Object(_hsl2hsv__WEBPACK_IMPORTED_MODULE_0__["hsl2hsv"])(h, s, l);
    return Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_1__["hsv2rgb"])(hsv.h, hsv.s, hsv.v);
}


/***/ }),

/***/ "./lib/utilities/color/hsv2hex.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return hsv2hex; });
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");


/** Converts HSV components to a hex color string (without # prefix). */
function hsv2hex(h, s, v) {
    var _a = Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"])(h, s, v), r = _a.r, g = _a.g, b = _a.b;
    return Object(_rgb2hex__WEBPACK_IMPORTED_MODULE_1__["rgb2hex"])(r, g, b);
}


/***/ }),

/***/ "./lib/utilities/color/hsv2hsl.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return hsv2hsl; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");

/** Converts HSV components to an HSL color. */
function hsv2hsl(h, s, v) {
    s /= _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"];
    v /= _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"];
    var l = (2 - s) * v;
    var sl = s * v;
    sl /= l <= 1 ? l : 2 - l;
    sl = sl || 0;
    l /= 2;
    return { h: h, s: sl * 100, l: l * 100 };
}


/***/ }),

/***/ "./lib/utilities/color/hsv2rgb.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return hsv2rgb; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");

/** Converts HSV components to an RGB color. Does not set the alpha value. */
function hsv2rgb(h, s, v) {
    s = s / 100;
    v = v / 100;
    var rgb = [];
    var c = v * s;
    var hh = h / 60;
    var x = c * (1 - Math.abs((hh % 2) - 1));
    var m = v - c;
    switch (Math.floor(hh)) {
        case 0:
            rgb = [c, x, 0];
            break;
        case 1:
            rgb = [x, c, 0];
            break;
        case 2:
            rgb = [0, c, x];
            break;
        case 3:
            rgb = [0, x, c];
            break;
        case 4:
            rgb = [x, 0, c];
            break;
        case 5:
            rgb = [c, 0, x];
            break;
    }
    return {
        r: Math.round(_consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"] * (rgb[0] + m)),
        g: Math.round(_consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"] * (rgb[1] + m)),
        b: Math.round(_consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"] * (rgb[2] + m))
    };
}


/***/ }),

/***/ "./lib/utilities/color/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/colors.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_SATURATION", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_SATURATION"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_HUE", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_HUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_VALUE", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_VALUE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGB", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_RGBA", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_COLOR_ALPHA", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_ALPHA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_HEX_LENGTH", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MIN_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_HEX_LENGTH", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_HEX_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MIN_RGBA_LENGTH", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MIN_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MAX_RGBA_LENGTH", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["MAX_RGBA_LENGTH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HEX_REGEX", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["HEX_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RGBA_REGEX", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["RGBA_REGEX"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssColor", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["cssColor"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["rgb2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["clamp"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2rgb", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["hsl2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsl2hsv", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["hsl2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2rgb", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hex", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["hsv2hex"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["rgb2hsv"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hsv2hsl", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["hsv2hsl"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromString", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["getColorFromString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromRGBA", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["getColorFromRGBA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getColorFromHSV", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["getColorFromHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFullColorString", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["getFullColorString"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["updateSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["updateH"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["updateRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["updateA"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctRGB", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["correctRGB"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHSV", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["correctHSV"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "correctHex", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__["correctHex"]; });

/* harmony import */ var _shades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/shades.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shade", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["Shade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidShade", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["isValidShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDark", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["isDark"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getShade", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["getShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBackgroundShade", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["getBackgroundShade"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getContrastRatio", function() { return _shades__WEBPACK_IMPORTED_MODULE_1__["getContrastRatio"]; });

/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/consts.js");
/* empty/unused harmony star reexport *//* harmony import */ var _cssColor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/cssColor.js");
/* empty/unused harmony star reexport *//* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");
/* empty/unused harmony star reexport *//* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/color/clamp.js");
/* empty/unused harmony star reexport *//* harmony import */ var _hsl2rgb__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./lib/utilities/color/hsl2rgb.js");
/* empty/unused harmony star reexport *//* harmony import */ var _hsl2hsv__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./lib/utilities/color/hsl2hsv.js");
/* empty/unused harmony star reexport *//* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* empty/unused harmony star reexport *//* harmony import */ var _hsv2hex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./lib/utilities/color/hsv2hex.js");
/* empty/unused harmony star reexport *//* harmony import */ var _rgb2hsv__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./lib/utilities/color/rgb2hsv.js");
/* empty/unused harmony star reexport *//* harmony import */ var _hsv2hsl__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./lib/utilities/color/hsv2hsl.js");
/* empty/unused harmony star reexport *//* harmony import */ var _getColorFromString__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./lib/utilities/color/getColorFromString.js");
/* empty/unused harmony star reexport *//* harmony import */ var _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");
/* empty/unused harmony star reexport *//* harmony import */ var _getColorFromHSV__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./lib/utilities/color/getColorFromHSV.js");
/* empty/unused harmony star reexport *//* harmony import */ var _getFullColorString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./lib/utilities/color/getFullColorString.js");
/* empty/unused harmony star reexport *//* harmony import */ var _updateSV__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./lib/utilities/color/updateSV.js");
/* empty/unused harmony star reexport *//* harmony import */ var _updateH__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("./lib/utilities/color/updateH.js");
/* empty/unused harmony star reexport *//* harmony import */ var _updateRGB__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("./lib/utilities/color/updateRGB.js");
/* empty/unused harmony star reexport *//* empty/unused harmony star reexport *//* harmony import */ var _updateA__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("./lib/utilities/color/updateA.js");
/* empty/unused harmony star reexport *//* harmony import */ var _correctRGB__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("./lib/utilities/color/correctRGB.js");
/* empty/unused harmony star reexport *//* harmony import */ var _correctHSV__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("./lib/utilities/color/correctHSV.js");
/* empty/unused harmony star reexport */
























/***/ }),

/***/ "./lib/utilities/color/rgb2hex.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgb2hex", function() { return rgb2hex; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/clamp.js");


/** Converts RGB components to a hex color string (without # prefix). */
function rgb2hex(r, g, b) {
    return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');
}
/** Converts an RGB component to a 0-padded hex component of length 2. */
function _rgbToPaddedHex(num) {
    num = Object(_clamp__WEBPACK_IMPORTED_MODULE_1__["clamp"])(num, _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]);
    var hex = num.toString(16);
    return hex.length === 1 ? '0' + hex : hex;
}


/***/ }),

/***/ "./lib/utilities/color/rgb2hsv.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgb2hsv", function() { return rgb2hsv; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");

/** Converts RGB components to an HSV color. */
function rgb2hsv(r, g, b) {
    var h = NaN;
    var s;
    var v;
    var max = Math.max(r, g, b);
    var min = Math.min(r, g, b);
    var delta = max - min;
    // hue
    if (delta === 0) {
        h = 0;
    }
    else if (r === max) {
        h = ((g - b) / delta) % 6;
    }
    else if (g === max) {
        h = (b - r) / delta + 2;
    }
    else if (b === max) {
        h = (r - g) / delta + 4;
    }
    h = Math.round(h * 60);
    if (h < 0) {
        h += 360;
    }
    // saturation
    s = Math.round((max === 0 ? 0 : delta / max) * 100);
    // value
    v = Math.round((max / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGB"]) * 100);
    return { h: h, s: s, v: v };
}


/***/ }),

/***/ "./lib/utilities/color/shades.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Shade", function() { return Shade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidShade", function() { return isValidShade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDark", function() { return isDark; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getShade", function() { return getShade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBackgroundShade", function() { return getBackgroundShade; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContrastRatio", function() { return getContrastRatio; });
/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/consts.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _clamp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/clamp.js");
/* harmony import */ var _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");
/* harmony import */ var _hsv2hsl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/utilities/color/hsv2hsl.js");
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");






// Soften: to get closer to the background color's luminance
// (softening with a white background would be lightening, with black it'd be darkening)
// Strongen: opposite of soften
// Luminance multiplier constants for generating shades of a given color
var WhiteShadeTableBG = [0.027, 0.043, 0.082, 0.145, 0.184, 0.216, 0.349, 0.537]; // white bg
var BlackTintTableBG = [0.537, 0.45, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043]; // black bg
var WhiteShadeTable = [0.537, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043, 0.027]; // white fg
var BlackTintTable = [0.537, 0.45, 0.349, 0.216, 0.184, 0.145, 0.082, 0.043]; // black fg
var LumTintTable = [0.88, 0.77, 0.66, 0.55, 0.44, 0.33, 0.22, 0.11]; // light (strongen all)
var LumShadeTable = [0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88]; // dark (soften all)
var ColorTintTable = [0.96, 0.84, 0.7, 0.4, 0.12]; // default soften
var ColorShadeTable = [0.1, 0.24, 0.44]; // default strongen
// If the given shade's luminance is below/above these values, we'll swap to using the White/Black tables above
var LowLuminanceThreshold = 0.2;
var HighLuminanceThreshold = 0.8;
/** Shades of a given color, from softest to strongest. */
var Shade;
(function (Shade) {
    Shade[Shade["Unshaded"] = 0] = "Unshaded";
    Shade[Shade["Shade1"] = 1] = "Shade1";
    Shade[Shade["Shade2"] = 2] = "Shade2";
    Shade[Shade["Shade3"] = 3] = "Shade3";
    Shade[Shade["Shade4"] = 4] = "Shade4";
    Shade[Shade["Shade5"] = 5] = "Shade5";
    Shade[Shade["Shade6"] = 6] = "Shade6";
    Shade[Shade["Shade7"] = 7] = "Shade7";
    Shade[Shade["Shade8"] = 8] = "Shade8";
    // remember to update isValidShade()!
})(Shade || (Shade = {}));
/**
 * Returns true if the argument is a valid Shade value
 * @param shade - The Shade value to validate.
 */
function isValidShade(shade) {
    'use strict';
    return typeof shade === 'number' && shade >= Shade.Unshaded && shade <= Shade.Shade8;
}
function _isBlack(color) {
    return color.r === 0 && color.g === 0 && color.b === 0;
}
function _isWhite(color) {
    return color.r === _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"] && color.g === _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"] && color.b === _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"];
}
function _darken(hsv, factor) {
    return {
        h: hsv.h,
        s: hsv.s,
        v: Object(_clamp__WEBPACK_IMPORTED_MODULE_2__["clamp"])(hsv.v - hsv.v * factor, 100, 0)
    };
}
function _lighten(hsv, factor) {
    return {
        h: hsv.h,
        s: Object(_clamp__WEBPACK_IMPORTED_MODULE_2__["clamp"])(hsv.s - hsv.s * factor, 100, 0),
        v: Object(_clamp__WEBPACK_IMPORTED_MODULE_2__["clamp"])(hsv.v + (100 - hsv.v) * factor, 100, 0)
    };
}
function isDark(color) {
    return Object(_hsv2hsl__WEBPACK_IMPORTED_MODULE_4__["hsv2hsl"])(color.h, color.s, color.v).l < 50;
}
/**
 * Given a color and a shade specification, generates the requested shade of the color.
 * Logic:
 * if white
 *  darken via tables defined above
 * if black
 *  lighten
 * if light
 *  strongen
 * if dark
 *  soften
 * else default
 *  soften or strongen depending on shade#
 * @param color - The base color whose shade is to be computed
 * @param shade - The shade of the base color to compute
 * @param isInverted - Default false. Whether the given theme is inverted (reverse strongen/soften logic)
 */
function getShade(color, shade, isInverted) {
    'use strict';
    if (isInverted === void 0) { isInverted = false; }
    if (!color) {
        return null;
    }
    if (shade === Shade.Unshaded || !isValidShade(shade)) {
        return color;
    }
    var hsl = Object(_hsv2hsl__WEBPACK_IMPORTED_MODULE_4__["hsv2hsl"])(color.h, color.s, color.v);
    var hsv = { h: color.h, s: color.s, v: color.v };
    var tableIndex = shade - 1;
    var _soften = _lighten;
    var _strongen = _darken;
    if (isInverted) {
        _soften = _darken;
        _strongen = _lighten;
    }
    if (_isWhite(color)) {
        // white
        hsv = _darken(hsv, WhiteShadeTable[tableIndex]);
    }
    else if (_isBlack(color)) {
        // black
        hsv = _lighten(hsv, BlackTintTable[tableIndex]);
    }
    else if (hsl.l / 100 > HighLuminanceThreshold) {
        // light
        hsv = _strongen(hsv, LumShadeTable[tableIndex]);
    }
    else if (hsl.l / 100 < LowLuminanceThreshold) {
        // dark
        hsv = _soften(hsv, LumTintTable[tableIndex]);
    }
    else {
        // default
        if (tableIndex < ColorTintTable.length) {
            hsv = _soften(hsv, ColorTintTable[tableIndex]);
        }
        else {
            hsv = _strongen(hsv, ColorShadeTable[tableIndex - ColorTintTable.length]);
        }
    }
    return Object(_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_3__["getColorFromRGBA"])(Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["assign"])(Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_5__["hsv2rgb"])(hsv.h, hsv.s, hsv.v), { a: color.a }));
}
// Background shades/tints are generated differently. The provided color will be guaranteed
//   to be the darkest or lightest one. If it is <50% luminance, it will always be the darkest,
//   otherwise it will always be the lightest.
function getBackgroundShade(color, shade, isInverted) {
    'use strict';
    if (isInverted === void 0) { isInverted = false; }
    if (!color) {
        return null;
    }
    if (shade === Shade.Unshaded || !isValidShade(shade)) {
        return color;
    }
    var hsv = { h: color.h, s: color.s, v: color.v };
    var tableIndex = shade - 1;
    if (!isInverted) {
        // lightish
        hsv = _darken(hsv, WhiteShadeTableBG[tableIndex]);
    }
    else {
        // default: if (hsl.l / 100 < .5) { // darkish
        hsv = _lighten(hsv, BlackTintTableBG[BlackTintTable.length - 1 - tableIndex]);
    }
    return Object(_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_3__["getColorFromRGBA"])(Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["assign"])(Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_5__["hsv2rgb"])(hsv.h, hsv.s, hsv.v), { a: color.a }));
}
/* Calculates the contrast ratio between two colors. Used for verifying
 * color pairs meet minimum accessibility requirements.
 * See: https://www.w3.org/TR/WCAG20/ section 1.4.3
 */
function getContrastRatio(color1, color2) {
    // Formula defined by: http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#contrast-ratiodef
    // relative luminance: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
    /* calculate the intermediate value needed to calculating relative luminance */
    function _getThing(x) {
        if (x <= 0.03928) {
            return x / 12.92;
        }
        else {
            return Math.pow((x + 0.055) / 1.055, 2.4);
        }
    }
    var r1 = _getThing(color1.r / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var g1 = _getThing(color1.g / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var b1 = _getThing(color1.b / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var L1 = 0.2126 * r1 + 0.7152 * g1 + 0.0722 * b1; // relative luminance of first color
    L1 += 0.05;
    var r2 = _getThing(color2.r / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var g2 = _getThing(color2.g / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var b2 = _getThing(color2.b / _consts__WEBPACK_IMPORTED_MODULE_0__["MAX_COLOR_RGBA"]);
    var L2 = 0.2126 * r2 + 0.7152 * g2 + 0.0722 * b2; // relative luminance of second color
    L2 += 0.05;
    // return the lighter color divided by darker
    return L1 / L2 > 1 ? L1 / L2 : L2 / L1;
}


/***/ }),

/***/ "./lib/utilities/color/updateA.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateA", function() { return updateA; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _rgbaOrHexString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/_rgbaOrHexString.js");


/**
 * Gets a color with the given alpha value and the same other components as `color`.
 * Does not modify the original color.
 */
function updateA(color, a) {
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, color, { a: a, str: Object(_rgbaOrHexString__WEBPACK_IMPORTED_MODULE_1__["_rgbaOrHexString"])(color.r, color.g, color.b, a, color.hex) });
}


/***/ }),

/***/ "./lib/utilities/color/updateH.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateH", function() { return updateH; });
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");
/* harmony import */ var _rgbaOrHexString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/_rgbaOrHexString.js");



/**
 * Gets a color with the same saturation and value as `color` and the other components updated
 * to match the given hue.
 *
 * Does not modify the original `color` and does not supply a default alpha value.
 */
function updateH(color, h) {
    var _a = Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"])(h, color.s, color.v), r = _a.r, g = _a.g, b = _a.b;
    var hex = Object(_rgb2hex__WEBPACK_IMPORTED_MODULE_1__["rgb2hex"])(r, g, b);
    return {
        a: color.a,
        b: b,
        g: g,
        h: h,
        hex: hex,
        r: r,
        s: color.s,
        str: Object(_rgbaOrHexString__WEBPACK_IMPORTED_MODULE_2__["_rgbaOrHexString"])(r, g, b, color.a, hex),
        v: color.v
    };
}


/***/ }),

/***/ "./lib/utilities/color/updateRGB.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateRGB", function() { return updateRGB; });
/* harmony import */ var _getColorFromRGBA__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/getColorFromRGBA.js");

/**
 * Gets a color with a single RGBA component updated to a new value.
 * Does not modify the original `color`. Alpha defaults to 100 if not set.
 */
function updateRGB(color, component, value) {
    var _a;
    return Object(_getColorFromRGBA__WEBPACK_IMPORTED_MODULE_0__["getColorFromRGBA"])((_a = {
            r: color.r,
            g: color.g,
            b: color.b,
            a: color.a
        },
        _a[component] = value,
        _a));
}


/***/ }),

/***/ "./lib/utilities/color/updateSV.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateSV", function() { return updateSV; });
/* harmony import */ var _hsv2rgb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/color/hsv2rgb.js");
/* harmony import */ var _rgb2hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/color/rgb2hex.js");
/* harmony import */ var _rgbaOrHexString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/color/_rgbaOrHexString.js");



/**
 * Gets a color with the same hue as `color` and other components updated to match the given
 * saturation and value.
 *
 * Does not modify the original `color` and does not supply a default alpha value.
 */
function updateSV(color, s, v) {
    var _a = Object(_hsv2rgb__WEBPACK_IMPORTED_MODULE_0__["hsv2rgb"])(color.h, s, v), r = _a.r, g = _a.g, b = _a.b;
    var hex = Object(_rgb2hex__WEBPACK_IMPORTED_MODULE_1__["rgb2hex"])(r, g, b);
    return {
        a: color.a,
        b: b,
        g: g,
        h: color.h,
        hex: hex,
        r: r,
        s: s,
        str: Object(_rgbaOrHexString__WEBPACK_IMPORTED_MODULE_2__["_rgbaOrHexString"])(r, g, b, color.a, hex),
        v: v
    };
}


/***/ }),

/***/ "./lib/utilities/contextualMenu/contextualMenuUtility.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIsChecked", function() { return getIsChecked; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasSubmenu", function() { return hasSubmenu; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isItemDisabled", function() { return isItemDisabled; });
/**
 * Determines the effective checked state of a menu item.
 *
 * @param item {IContextualMenuItem} to get the check state of.
 * @returns {true} if the item is checked.
 * @returns {false} if the item is unchecked.
 * @returns {null} if the item is not checkable.
 */
function getIsChecked(item) {
    if (item.canCheck) {
        return !!(item.isChecked || item.checked);
    }
    if (typeof item.isChecked === 'boolean') {
        return item.isChecked;
    }
    if (typeof item.checked === 'boolean') {
        return item.checked;
    }
    // Item is not checkable.
    return null;
}
function hasSubmenu(item) {
    return !!(item.subMenuProps || item.items);
}
function isItemDisabled(item) {
    return !!(item.isDisabled || item.disabled);
}


/***/ }),

/***/ "./lib/utilities/contextualMenu/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _contextualMenuUtility__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/contextualMenu/contextualMenuUtility.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIsChecked", function() { return _contextualMenuUtility__WEBPACK_IMPORTED_MODULE_0__["getIsChecked"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasSubmenu", function() { return _contextualMenuUtility__WEBPACK_IMPORTED_MODULE_0__["hasSubmenu"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isItemDisabled", function() { return _contextualMenuUtility__WEBPACK_IMPORTED_MODULE_0__["isItemDisabled"]; });




/***/ }),

/***/ "./lib/utilities/dateMath/DateMath.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addDays", function() { return addDays; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addWeeks", function() { return addWeeks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMonths", function() { return addMonths; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addYears", function() { return addYears; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMonthStart", function() { return getMonthStart; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMonthEnd", function() { return getMonthEnd; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getYearStart", function() { return getYearStart; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getYearEnd", function() { return getYearEnd; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMonth", function() { return setMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareDates", function() { return compareDates; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareDatePart", function() { return compareDatePart; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateRangeArray", function() { return getDateRangeArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInDateRangeArray", function() { return isInDateRangeArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWeekNumbersInMonth", function() { return getWeekNumbersInMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWeekNumber", function() { return getWeekNumber; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStartDateOfWeek", function() { return getStartDateOfWeek; });
/* harmony import */ var _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/dateValues/DateValues.js");
/* harmony import */ var _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/dateValues/TimeConstants.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");



/**
 * Returns a date offset from the given date by the specified number of days.
 * @param {Date} date - The origin date
 * @param {number} days - The number of days to offset. 'days' can be negative.
 * @return {Date} A new Date object offset from the origin date by the given number of days
 */
function addDays(date, days) {
    var result = new Date(date.getTime());
    result.setDate(result.getDate() + days);
    return result;
}
/**
 * Returns a date offset from the given date by the specified number of weeks.
 * @param {Date} date - The origin date
 * @param {number} weeks - The number of weeks to offset. 'weeks' can be negative.
 * @return {Date} A new Date object offset from the origin date by the given number of weeks
 */
function addWeeks(date, weeks) {
    return addDays(date, weeks * _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek);
}
/**
 * Returns a date offset from the given date by the specified number of months.
 * The method tries to preserve the day-of-month; however, if the new month does not have enough days
 * to contain the original day-of-month, we'll use the last day of the new month.
 * @param {Date} date - The origin date
 * @param {number} months - The number of months to offset. 'months' can be negative.
 * @return {Date} A new Date object offset from the origin date by the given number of months
 */
function addMonths(date, months) {
    var result = new Date(date.getTime());
    var newMonth = result.getMonth() + months;
    result.setMonth(newMonth);
    // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.
    // Loop until we back up to a day the new month has.
    // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)
    if (result.getMonth() !== ((newMonth % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) + _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) {
        result = addDays(result, -result.getDate());
    }
    return result;
}
/**
 * Returns a date offset from the given date by the specified number of years.
 * The method tries to preserve the day-of-month; however, if the new month does not have enough days
 * to contain the original day-of-month, we'll use the last day of the new month.
 * @param {Date} date - The origin date
 * @param {number} years - The number of years to offset. 'years' can be negative.
 * @return {Date} A new Date object offset from the origin date by the given number of years
 */
function addYears(date, years) {
    var result = new Date(date.getTime());
    result.setFullYear(date.getFullYear() + years);
    // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.
    // Loop until we back up to a day the new month has.
    // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)
    if (result.getMonth() !==
        ((date.getMonth() % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) + _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].MonthInOneYear) {
        result = addDays(result, -result.getDate());
    }
    return result;
}
/**
 * Returns a date that is the first day of the month of the provided date.
 * @param {Date} date - The origin date
 * @return {Date} A new Date object with the day set to the first day of the month.
 */
function getMonthStart(date) {
    return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);
}
/**
 * Returns a date that is the last day of the month of the provided date.
 * @param {Date} date - The origin date
 * @return {Date} A new Date object with the day set to the last day of the month.
 */
function getMonthEnd(date) {
    return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);
}
/**
 * Returns a date that is the first day of the year of the provided date.
 * @param {Date} date - The origin date
 * @return {Date} A new Date object with the day set to the first day of the year.
 */
function getYearStart(date) {
    return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);
}
/**
 * Returns a date that is the last day of the year of the provided date.
 * @param {Date} date - The origin date
 * @return {Date} A new Date object with the day set to the last day of the year.
 */
function getYearEnd(date) {
    return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);
}
/**
 * Returns a date that is a copy of the given date, aside from the month changing to the given month.
 *  The method tries to preserve the day-of-month; however, if the new month does not have enough days
 * to contain the original day-of-month, we'll use the last day of the new month.
 * @param {Date} date - The origin date
 * @param {number} month - The 0-based index of the month to set on the date.
 * @return {Date} A new Date object with the given month set.
 */
function setMonth(date, month) {
    return addMonths(date, month - date.getMonth());
}
/**
 * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.
 * @return {boolean} True if the two dates represent the same date (regardless of time-of-day), false otherwise.
 */
function compareDates(date1, date2) {
    if (!date1 && !date2) {
        return true;
    }
    else if (!date1 || !date2) {
        return false;
    }
    else {
        return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();
    }
}
/**
 * Compare the date parts of two dates
 * @param {Date} date1 - The first date to compare
 * @param {Date} date2 - The second date to compare
 * @returns {Number} A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value
 * if date1 is later than date2.
 */
function compareDatePart(date1, date2) {
    return getDatePartHashValue(date1) - getDatePartHashValue(date2);
}
/**
 * Gets the date range array including the specified date. The date range array is calculated as the list
 * of dates accounting for the specified first day of the week and date range type.
 * @param {Date} date - The input date
 * @param {DateRangeType} dateRangeType - The desired date range type, i.e., day, week, month, etc.
 * @param {DayOfWeek} firstDayOfWeek - The first day of the week.
 * @param {DayOfWeek[]} workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.
 * @param {number} daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day
 * for multiday view. Defaults to 1
 * @returns {Date[]} An array of dates representing the date range containing the specified date.
 */
function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {
    if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }
    var datesArray = new Array();
    var startDate;
    var endDate = null;
    if (!workWeekDays) {
        workWeekDays = [_dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Monday, _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Tuesday, _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Wednesday, _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Thursday, _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Friday];
    }
    daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);
    switch (dateRangeType) {
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"].Day:
            startDate = getDatePart(date);
            endDate = addDays(startDate, daysToSelectInDayView);
            break;
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"].Week:
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"].WorkWeek:
            startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);
            endDate = addDays(startDate, _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek);
            break;
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"].Month:
            startDate = new Date(date.getFullYear(), date.getMonth(), 1);
            endDate = addMonths(startDate, 1);
            break;
        default:
            return Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["assertNever"])(dateRangeType);
    }
    // Populate the dates array with the dates in range
    var nextDate = startDate;
    do {
        if (dateRangeType !== _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DateRangeType"].WorkWeek) {
            // push all days not in work week view
            datesArray.push(nextDate);
        }
        else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {
            datesArray.push(nextDate);
        }
        nextDate = addDays(nextDate, 1);
    } while (!compareDates(nextDate, endDate));
    return datesArray;
}
/**
 * Checks whether the specified date is in the given date range.
 * @param {Date} date - The origin date
 * @param {Date[]} dateRange - An array of dates to do the lookup on
 * @returns {bool} True if the date matches one of the dates in the specified array, false otherwise.
 */
function isInDateRangeArray(date, dateRange) {
    for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {
        var dateInRange = dateRange_1[_i];
        if (compareDates(date, dateInRange)) {
            return true;
        }
    }
    return false;
}
/**
 * Returns the week number for a date.
 * Week numbers are 1 - 52 (53) in a year
 * @param {navigatedDate} Date - A date to find the week number for.
 * @param {firstDayOfWeek} DayOfWeek - The first day of the week (0-6, Sunday = 0)
 * @param {firstWeekOfYear} FirstWeekOfYear - The first week of the year (1-2)
 * @return {weeksArray} The weeks number array for the current month.
 */
function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {
    var selectedYear = navigatedDate.getFullYear();
    var selectedMonth = navigatedDate.getMonth();
    var dayOfMonth = 1;
    var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);
    var endOfFirstWeek = dayOfMonth + (firstDayOfWeek + _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek - 1) - adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());
    var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);
    dayOfMonth = endOfWeekRange.getDate();
    var weeksArray = [];
    for (var i = 0; i < weeksInMonth; i++) {
        // Get week number for end of week
        weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));
        dayOfMonth += _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
        endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);
    }
    return weeksArray;
}
/**
 * Returns the week number for a date.
 * Week numbers are 1 - 52 (53) in a year
 * @param {Date} date - A date to find the week number for.
 * @param {DayOfWeek} firstDayOfWeek - The first day of the week (0-6, Sunday = 0)
 * @param {firstWeekOfYear} firstWeekOfYear - The first week of the year (1-2)
 * @return {Number} The week's number in the year.
 */
function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {
    // First four-day week of the year - minumum days count
    var fourDayWeek = 4;
    switch (firstWeekOfYear) {
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"].FirstFullWeek:
            return getWeekOfYearFullDays(date, firstDayOfWeek, _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek);
        case _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["FirstWeekOfYear"].FirstFourDayWeek:
            return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);
        default:
            return getFirstDayWeekOfYear(date, firstDayOfWeek);
    }
}
/**
 * Gets the date for the first day of the week based on the given date assuming
 * the specified first day of the week.
 * @param {Date} date - The date to find the beginning of the week date for.
 * @return {Date} A new date object representing the first day of the week containing the input date.
 */
function getStartDateOfWeek(date, firstDayOfWeek) {
    var daysOffset = firstDayOfWeek - date.getDay();
    if (daysOffset > 0) {
        // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.
        daysOffset -= _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
    }
    return addDays(date, daysOffset);
}
/**
 * Gets a new date with the time portion zeroed out, i.e., set to midnight
 * @param {Date} date - The origin date
 * @returns {Date} A new date with the time set to midnight
 */
function getDatePart(date) {
    return new Date(date.getFullYear(), date.getMonth(), date.getDate());
}
/**
 * Helper function to assist in date comparisons
 */
function getDatePartHashValue(date) {
    // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.
    /* tslint:disable:no-bitwise */
    return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);
    /* tslint:enable:no-bitwise */
}
/**
 * Helper function for getWeekNumber.
 * Returns week number for a date
 * @param {date} Date - current selected date.
 * @param {firstDayOfWeek} DayOfWeek - The first day of week (0-6, Sunday = 0)
 * @param {numberOfFullDays} number - week settings.
 * @return {Number} The week's number in the year.
 */
function getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {
    var dayOfYear = getDayOfYear(date) - 1;
    var num = date.getDay() - (dayOfYear % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek);
    var lastDayOfPrevYear = new Date(date.getFullYear() - 1, _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["MonthOfYear"].December, 31);
    var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;
    var num2 = (firstDayOfWeek - num + 2 * _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek) % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
    if (num2 !== 0 && num2 >= numberOfFullDays) {
        num2 -= _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
    }
    var num3 = dayOfYear - num2;
    if (num3 < 0) {
        num -= daysInYear % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
        num2 = (firstDayOfWeek - num + 2 * _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek) % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
        if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {
            num2 -= _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
        }
        num3 = daysInYear - num2;
    }
    return Math.floor(num3 / _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek + 1);
}
/**
 * Helper function for getWeekNumber.
 * Returns week number for a date
 * @param {date} Date - current selected date.
 * @param {firstDayOfWeek} DayOfWeek - The first day of week (0-6, Sunday = 0)
 * @return {Number} The week's number in the year.
 */
function getFirstDayWeekOfYear(date, firstDayOfWeek) {
    var num = getDayOfYear(date) - 1;
    var num2 = date.getDay() - (num % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek);
    var num3 = (num2 - firstDayOfWeek + 2 * _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek) % _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek;
    return Math.floor((num + num3) / _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek + 1);
}
/**
 * Helper function for getWeekNumber.
 * Returns adjusted week day number when firstDayOfWeek is other than Sunday
 * For Week Day Number comparison checks
 * @param {firstDayOfWeek} DayOfWeek - The first day of week (0-6, Sunday = 0)
 * @param {dateWeekDay} DayOfWeek - shifts number forward to 1 week in case passed as true
 * @return {DayOfWeek} The day of week adjusted to firstDayOfWeek. E.g. when FirstDyOfWeek is Monday (1), Sunday becomes = 7 (7 > 1).
 */
function adjustWeekDay(firstDayOfWeek, dateWeekDay) {
    return firstDayOfWeek !== _dateValues_DateValues__WEBPACK_IMPORTED_MODULE_0__["DayOfWeek"].Sunday && dateWeekDay < firstDayOfWeek ? dateWeekDay + _dateValues_TimeConstants__WEBPACK_IMPORTED_MODULE_1__["default"].DaysInOneWeek : dateWeekDay;
}
/**
 * Returns the day number for a date in a year
 * The number of days since January 1st in the particular year.
 * @param {Date} date - A date to find the day number for.
 * @return {Number} The day's number in the year.
 */
function getDayOfYear(date) {
    var month = date.getMonth();
    var year = date.getFullYear();
    var daysUntilDate = 0;
    for (var i = 0; i < month; i++) {
        daysUntilDate += daysInMonth(i + 1, year);
    }
    daysUntilDate += date.getDate();
    return daysUntilDate;
}
/**
 * Returns the number of days in the month
 * @param {number} month - The month number to target (months 1-12).
 * @param {number} year - The year to target.
 * @return {Number} The number of days in the month.
 */
function daysInMonth(month, year) {
    return new Date(year, month, 0).getDate();
}


/***/ }),

/***/ "./lib/utilities/dateValues/DateValues.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DayOfWeek", function() { return DayOfWeek; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MonthOfYear", function() { return MonthOfYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FirstWeekOfYear", function() { return FirstWeekOfYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateRangeType", function() { return DateRangeType; });
/**
 * The days of the week
 * {@docCategory DayOfWeek}
 */
var DayOfWeek;
(function (DayOfWeek) {
    DayOfWeek[DayOfWeek["Sunday"] = 0] = "Sunday";
    DayOfWeek[DayOfWeek["Monday"] = 1] = "Monday";
    DayOfWeek[DayOfWeek["Tuesday"] = 2] = "Tuesday";
    DayOfWeek[DayOfWeek["Wednesday"] = 3] = "Wednesday";
    DayOfWeek[DayOfWeek["Thursday"] = 4] = "Thursday";
    DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
    DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
})(DayOfWeek || (DayOfWeek = {}));
/**
 * The months
 * {@docCategory MonthOfYear}
 */
var MonthOfYear;
(function (MonthOfYear) {
    MonthOfYear[MonthOfYear["January"] = 0] = "January";
    MonthOfYear[MonthOfYear["February"] = 1] = "February";
    MonthOfYear[MonthOfYear["March"] = 2] = "March";
    MonthOfYear[MonthOfYear["April"] = 3] = "April";
    MonthOfYear[MonthOfYear["May"] = 4] = "May";
    MonthOfYear[MonthOfYear["June"] = 5] = "June";
    MonthOfYear[MonthOfYear["July"] = 6] = "July";
    MonthOfYear[MonthOfYear["August"] = 7] = "August";
    MonthOfYear[MonthOfYear["September"] = 8] = "September";
    MonthOfYear[MonthOfYear["October"] = 9] = "October";
    MonthOfYear[MonthOfYear["November"] = 10] = "November";
    MonthOfYear[MonthOfYear["December"] = 11] = "December";
})(MonthOfYear || (MonthOfYear = {}));
/**
 * First week of the year settings types
 * {@docCategory FirstWeekOfYear}
 */
var FirstWeekOfYear;
(function (FirstWeekOfYear) {
    FirstWeekOfYear[FirstWeekOfYear["FirstDay"] = 0] = "FirstDay";
    FirstWeekOfYear[FirstWeekOfYear["FirstFullWeek"] = 1] = "FirstFullWeek";
    FirstWeekOfYear[FirstWeekOfYear["FirstFourDayWeek"] = 2] = "FirstFourDayWeek";
})(FirstWeekOfYear || (FirstWeekOfYear = {}));
/**
 * The supported date range types
 * {@docCategory DateRangeType}
 */
var DateRangeType;
(function (DateRangeType) {
    DateRangeType[DateRangeType["Day"] = 0] = "Day";
    DateRangeType[DateRangeType["Week"] = 1] = "Week";
    DateRangeType[DateRangeType["Month"] = 2] = "Month";
    DateRangeType[DateRangeType["WorkWeek"] = 3] = "WorkWeek";
})(DateRangeType || (DateRangeType = {}));


/***/ }),

/***/ "./lib/utilities/dateValues/TimeConstants.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Common constants and methods
 */
var TimeConstants = {
    MillisecondsInOneDay: 86400000,
    MillisecondsIn1Sec: 1000,
    MillisecondsIn1Min: 60000,
    MillisecondsIn30Mins: 1800000,
    MillisecondsIn1Hour: 3600000,
    MinutesInOneDay: 1440,
    MinutesInOneHour: 60,
    DaysInOneWeek: 7,
    MonthInOneYear: 12
};
/* harmony default export */ __webpack_exports__["default"] = (TimeConstants);


/***/ }),

/***/ "./lib/utilities/decorators/BaseDecorator.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseDecorator", function() { return BaseDecorator; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var BaseDecorator = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BaseDecorator, _super);
    function BaseDecorator(props) {
        var _this = _super.call(this, props) || this;
        // tslint:disable-next-line:typedef
        _this._skipComponentRefResolution = true;
        _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);
        return _this;
    }
    /**
     * Updates the ref to the component composed by the decorator, which will also take care of hoisting
     * (and unhoisting as appropriate) methods from said component.
     *
     * Pass this method as the argument to the 'ref' property of the composed component.
     */
    BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {
        this._composedComponentInstance = composedComponentInstance;
        if (composedComponentInstance) {
            this._hoisted = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["hoistMethods"])(this, composedComponentInstance);
        }
        else if (this._hoisted) {
            Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["unhoistMethods"])(this, this._hoisted);
        }
    };
    return BaseDecorator;
}(_Utilities__WEBPACK_IMPORTED_MODULE_1__["BaseComponent"]));



/***/ }),

/***/ "./lib/utilities/decorators/withResponsiveMode.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMode", function() { return ResponsiveMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setResponsiveMode", function() { return setResponsiveMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withResponsiveMode", function() { return withResponsiveMode; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _BaseDecorator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/decorators/BaseDecorator.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./lib/Utilities.js");





var ResponsiveMode;
(function (ResponsiveMode) {
    ResponsiveMode[ResponsiveMode["small"] = 0] = "small";
    ResponsiveMode[ResponsiveMode["medium"] = 1] = "medium";
    ResponsiveMode[ResponsiveMode["large"] = 2] = "large";
    ResponsiveMode[ResponsiveMode["xLarge"] = 3] = "xLarge";
    ResponsiveMode[ResponsiveMode["xxLarge"] = 4] = "xxLarge";
    ResponsiveMode[ResponsiveMode["xxxLarge"] = 5] = "xxxLarge";
    ResponsiveMode[ResponsiveMode["unknown"] = 999] = "unknown";
})(ResponsiveMode || (ResponsiveMode = {}));
var RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];
/**
 * User specified mode to default to, useful for server side rendering scenarios.
 */
var _defaultMode;
/**
 * Tracking the last mode we successfully rendered, which allows us to
 * paint initial renders with the correct size.
 */
var _lastMode;
/**
 * Allows a server rendered scenario to provide a default responsive mode.
 */
function setResponsiveMode(responsiveMode) {
    _defaultMode = responsiveMode;
}
function withResponsiveMode(ComposedComponent) {
    var resultClass = /** @class */ (function (_super) {
        tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithResponsiveMode, _super);
        function WithResponsiveMode(props) {
            var _this = _super.call(this, props) || this;
            _this._onResize = function () {
                var responsiveMode = _this._getResponsiveMode();
                if (responsiveMode !== _this.state.responsiveMode) {
                    _this.setState({
                        responsiveMode: responsiveMode
                    });
                }
            };
            _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);
            _this.state = {
                responsiveMode: _defaultMode || _lastMode || ResponsiveMode.large
            };
            return _this;
        }
        WithResponsiveMode.prototype.componentDidMount = function () {
            this._events.on(window, 'resize', this._onResize);
            this._onResize();
        };
        WithResponsiveMode.prototype.componentWillUnmount = function () {
            this._events.dispose();
        };
        WithResponsiveMode.prototype.render = function () {
            var responsiveMode = this.state.responsiveMode;
            return responsiveMode === ResponsiveMode.unknown ? null : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ComposedComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));
        };
        WithResponsiveMode.prototype._getResponsiveMode = function () {
            var responsiveMode = ResponsiveMode.small;
            var element = Object(react_dom__WEBPACK_IMPORTED_MODULE_2__["findDOMNode"])(this);
            var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["getWindow"])(element);
            if (typeof win !== 'undefined') {
                try {
                    while (win.innerWidth > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {
                        responsiveMode++;
                    }
                }
                catch (e) {
                    // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.
                    responsiveMode = _defaultMode || _lastMode || ResponsiveMode.large;
                }
                // Tracking last mode just gives us a better default in future renders,
                // which avoids starting with the wrong value if we've measured once.
                _lastMode = responsiveMode;
            }
            else {
                if (_defaultMode !== undefined) {
                    responsiveMode = _defaultMode;
                }
                else {
                    throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +
                        'Call setResponsiveMode to define what the responsive mode is.');
                }
            }
            return responsiveMode;
        };
        return WithResponsiveMode;
    }(_BaseDecorator__WEBPACK_IMPORTED_MODULE_3__["BaseDecorator"]));
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_4__["hoistStatics"])(ComposedComponent, resultClass);
}


/***/ }),

/***/ "./lib/utilities/decorators/withViewport.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withViewport", function() { return withViewport; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _BaseDecorator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/decorators/BaseDecorator.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Utilities.js");




var RESIZE_DELAY = 500;
var MAX_RESIZE_ATTEMPTS = 3;
/**
 * A decorator to update decorated component on viewport or window resize events.
 *
 * @param ComposedComponent decorated React component reference.
 */
function withViewport(ComposedComponent) {
    return /** @class */ (function (_super) {
        tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithViewportComponent, _super);
        function WithViewportComponent(props) {
            var _this = _super.call(this, props) || this;
            _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
            _this._registerResizeObserver = function () {
                var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(_this._root.current);
                _this._viewportResizeObserver = new win.ResizeObserver(_this._onAsyncResize);
                _this._viewportResizeObserver.observe(_this._root.current);
            };
            _this._unregisterResizeObserver = function () {
                if (_this._viewportResizeObserver) {
                    _this._viewportResizeObserver.disconnect();
                    _this._viewportResizeObserver = null;
                }
            };
            /* Note: using lambda here because decorators don't seem to work in decorators. */
            _this._updateViewport = function (withForceUpdate) {
                var viewport = _this.state.viewport;
                var viewportElement = _this._root.current;
                var scrollElement = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["findScrollableParent"])(viewportElement);
                var scrollRect = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRect"])(scrollElement);
                var clientRect = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getRect"])(viewportElement);
                var updateComponent = function () {
                    if (withForceUpdate && _this._composedComponentInstance) {
                        _this._composedComponentInstance.forceUpdate();
                    }
                };
                var isSizeChanged = (clientRect && clientRect.width) !== viewport.width || (scrollRect && scrollRect.height) !== viewport.height;
                if (isSizeChanged && _this._resizeAttempts < MAX_RESIZE_ATTEMPTS && clientRect && scrollRect) {
                    _this._resizeAttempts++;
                    _this.setState({
                        viewport: {
                            width: clientRect.width,
                            height: scrollRect.height
                        }
                    }, function () {
                        _this._updateViewport(withForceUpdate);
                    });
                }
                else {
                    _this._resizeAttempts = 0;
                    updateComponent();
                }
            };
            _this._resizeAttempts = 0;
            _this.state = {
                viewport: {
                    width: 0,
                    height: 0
                }
            };
            return _this;
        }
        WithViewportComponent.prototype.componentDidMount = function () {
            var skipViewportMeasures = this.props.skipViewportMeasures;
            var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(this._root.current);
            this._onAsyncResize = this._async.debounce(this._onAsyncResize, RESIZE_DELAY, {
                leading: false
            });
            // ResizeObserver seems always fire even window is not resized. This is
            // particularly bad when skipViewportMeasures is set when optimizing fixed layout lists.
            // It will measure and update and re-render the entire list after list is fully rendered.
            // So fallback to listen to resize event when skipViewportMeasures is set.
            if (!skipViewportMeasures && this._isResizeObserverAvailable()) {
                this._registerResizeObserver();
            }
            else {
                this._events.on(win, 'resize', this._onAsyncResize);
            }
            if (!skipViewportMeasures) {
                this._updateViewport();
            }
        };
        WithViewportComponent.prototype.componentDidUpdate = function (newProps) {
            var oldSkipViewportMeasures = this.props.skipViewportMeasures;
            var newSkipViewportMeasures = newProps.skipViewportMeasures;
            var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(this._root.current);
            if (oldSkipViewportMeasures !== newSkipViewportMeasures) {
                if (newSkipViewportMeasures) {
                    this._unregisterResizeObserver();
                    this._events.on(win, 'resize', this._onAsyncResize);
                }
                else if (!newSkipViewportMeasures && this._isResizeObserverAvailable()) {
                    this._events.off(win, 'resize', this._onAsyncResize);
                    this._registerResizeObserver();
                }
            }
            if (!!newSkipViewportMeasures) {
                this._updateViewport();
            }
        };
        WithViewportComponent.prototype.componentWillUnmount = function () {
            this._events.dispose();
            if (this._viewportResizeObserver) {
                this._viewportResizeObserver.disconnect();
            }
        };
        WithViewportComponent.prototype.render = function () {
            var viewport = this.state.viewport;
            var newViewport = viewport.width > 0 && viewport.height > 0 ? viewport : undefined;
            return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ms-Viewport", ref: this._root, style: { minWidth: 1, minHeight: 1 } },
                react__WEBPACK_IMPORTED_MODULE_1__["createElement"](ComposedComponent, tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({ ref: this._updateComposedComponentRef, viewport: newViewport }, this.props))));
        };
        WithViewportComponent.prototype.forceUpdate = function () {
            this._updateViewport(true);
        };
        WithViewportComponent.prototype._onAsyncResize = function () {
            this._updateViewport();
        };
        WithViewportComponent.prototype._isResizeObserverAvailable = function () {
            var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_3__["getWindow"])(this._root.current);
            return win && win.ResizeObserver;
        };
        return WithViewportComponent;
    }(_BaseDecorator__WEBPACK_IMPORTED_MODULE_2__["BaseDecorator"]));
}


/***/ }),

/***/ "./lib/utilities/dragdrop/DragDropHelper.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropHelper", function() { return DragDropHelper; });
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


var MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button
var MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button
var DragDropHelper = /** @class */ (function () {
    function DragDropHelper(params) {
        this._selection = params.selection;
        this._dragEnterCounts = {};
        this._activeTargets = {};
        this._lastId = 0;
        // To make this class cheap to create, which allows simplifying some logic elsewhere,
        // only initialize the event group and global event handlers as needed.
        this._initialized = false;
    }
    DragDropHelper.prototype.dispose = function () {
        if (this._events) {
            this._events.dispose();
        }
    };
    DragDropHelper.prototype.subscribe = function (root, events, dragDropOptions) {
        var _this = this;
        if (!this._initialized) {
            this._events = new _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"](this);
            var doc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getDocument"])();
            // clear drag data when mouse up, use capture event to ensure it will be run
            if (doc) {
                this._events.on(doc.body, 'mouseup', this._onMouseUp.bind(this), true);
                this._events.on(doc, 'mouseup', this._onDocumentMouseUp.bind(this), true);
            }
            this._initialized = true;
        }
        var _a = dragDropOptions.key, key = _a === void 0 ? "" + ++this._lastId : _a;
        var handlers = [];
        var onDragStart;
        var onDragLeave;
        var onDragEnter;
        var onDragEnd;
        var onDrop;
        var onDragOver;
        var onMouseDown;
        var isDraggable;
        var isDroppable;
        var activeTarget;
        if (dragDropOptions && root) {
            var eventMap = dragDropOptions.eventMap, context = dragDropOptions.context, updateDropState_1 = dragDropOptions.updateDropState;
            var dragDropTarget = {
                root: root,
                options: dragDropOptions,
                key: key
            };
            isDraggable = this._isDraggable(dragDropTarget);
            isDroppable = this._isDroppable(dragDropTarget);
            if (isDraggable || isDroppable) {
                if (eventMap) {
                    for (var _i = 0, eventMap_1 = eventMap; _i < eventMap_1.length; _i++) {
                        var event_1 = eventMap_1[_i];
                        var handler = {
                            callback: event_1.callback.bind(null, context),
                            eventName: event_1.eventName
                        };
                        handlers.push(handler);
                        this._events.on(root, handler.eventName, handler.callback);
                    }
                }
            }
            if (isDroppable) {
                // If the target is droppable, wire up global event listeners to track drop-related events.
                onDragLeave = function (event) {
                    if (!event.isHandled) {
                        event.isHandled = true;
                        _this._dragEnterCounts[key]--;
                        if (_this._dragEnterCounts[key] === 0) {
                            updateDropState_1(false /* isDropping */, event);
                        }
                    }
                };
                onDragEnter = function (event) {
                    event.preventDefault(); // needed for IE
                    if (!event.isHandled) {
                        event.isHandled = true;
                        _this._dragEnterCounts[key]++;
                        if (_this._dragEnterCounts[key] === 1) {
                            updateDropState_1(true /* isDropping */, event);
                        }
                    }
                };
                onDragEnd = function (event) {
                    _this._dragEnterCounts[key] = 0;
                    updateDropState_1(false /* isDropping */, event);
                };
                onDrop = function (event) {
                    _this._dragEnterCounts[key] = 0;
                    updateDropState_1(false /* isDropping */, event);
                    if (dragDropOptions.onDrop) {
                        dragDropOptions.onDrop(dragDropOptions.context.data, event);
                    }
                };
                onDragOver = function (event) {
                    event.preventDefault();
                    if (dragDropOptions.onDragOver) {
                        dragDropOptions.onDragOver(dragDropOptions.context.data, event);
                    }
                };
                this._dragEnterCounts[key] = 0;
                // dragenter and dragleave will be fired when hover to the child element
                // but we only want to change state when enter or leave the current element
                // use the count to ensure it.
                events.on(root, 'dragenter', onDragEnter);
                events.on(root, 'dragleave', onDragLeave);
                events.on(root, 'dragend', onDragEnd);
                events.on(root, 'drop', onDrop);
                events.on(root, 'dragover', onDragOver);
            }
            if (isDraggable) {
                // If the target is draggable, wire up local event listeners for mouse events.
                onMouseDown = this._onMouseDown.bind(this, dragDropTarget);
                onDragEnd = this._onDragEnd.bind(this, dragDropTarget);
                // We need to add in data so that on Firefox we show the ghost element when dragging
                onDragStart = function (event) {
                    var options = _this._dragData.dragTarget.options;
                    if (options && options.onDragStart) {
                        options.onDragStart(options.context.data, options.context.index, _this._selection.getSelection(), event);
                    }
                    _this._isDragging = true;
                    if (event.dataTransfer) {
                        event.dataTransfer.setData('id', root.id);
                    }
                };
                events.on(root, 'dragstart', onDragStart);
                events.on(root, 'mousedown', onMouseDown);
                events.on(root, 'dragend', onDragEnd);
            }
            activeTarget = {
                target: dragDropTarget,
                dispose: function () {
                    if (_this._activeTargets[key] === activeTarget) {
                        delete _this._activeTargets[key];
                    }
                    if (root) {
                        for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {
                            var handler = handlers_1[_i];
                            _this._events.off(root, handler.eventName, handler.callback);
                        }
                        if (isDroppable) {
                            events.off(root, 'dragenter', onDragEnter);
                            events.off(root, 'dragleave', onDragLeave);
                            events.off(root, 'dragend', onDragEnd);
                            events.off(root, 'dragover', onDragOver);
                            events.off(root, 'drop', onDrop);
                        }
                        if (isDraggable) {
                            events.off(root, 'dragstart', onDragStart);
                            events.off(root, 'mousedown', onMouseDown);
                            events.off(root, 'dragend', onDragEnd);
                        }
                    }
                }
            };
            this._activeTargets[key] = activeTarget;
        }
        return {
            key: key,
            dispose: function () {
                if (activeTarget) {
                    activeTarget.dispose();
                }
            }
        };
    };
    DragDropHelper.prototype.unsubscribe = function (root, key) {
        var activeTarget = this._activeTargets[key];
        if (activeTarget) {
            activeTarget.dispose();
        }
    };
    DragDropHelper.prototype._onDragEnd = function (target, event) {
        var options = target.options;
        if (options.onDragEnd) {
            options.onDragEnd(options.context.data, event);
        }
    };
    /**
     * clear drag data when mouse up on body
     */
    DragDropHelper.prototype._onMouseUp = function (event) {
        this._isDragging = false;
        if (this._dragData) {
            for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {
                var key = _a[_i];
                var activeTarget = this._activeTargets[key];
                if (activeTarget.target.root) {
                    this._events.off(activeTarget.target.root, 'mousemove');
                    this._events.off(activeTarget.target.root, 'mouseleave');
                }
            }
            if (this._dragData.dropTarget) {
                // raise dragleave event to let dropTarget know it need to remove dropping style
                _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this._dragData.dropTarget.root, 'dragleave');
                _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this._dragData.dropTarget.root, 'drop');
            }
        }
        this._dragData = null;
    };
    /**
     * clear drag data when mouse up outside of the document
     */
    DragDropHelper.prototype._onDocumentMouseUp = function (event) {
        var doc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getDocument"])();
        if (doc && event.target === doc.documentElement) {
            this._onMouseUp(event);
        }
    };
    /**
     * when mouse move over a new drop target while dragging some items,
     * fire dragleave on the old target and fire dragenter to the new target
     * The target will handle style change on dragenter and dragleave events.
     */
    DragDropHelper.prototype._onMouseMove = function (target, event) {
        var 
        // use buttons property here since ev.button in some edge case is not updating well during the move.
        // but firefox doesn't support it, so we set the default value when it is not defined.
        _a = event.buttons, 
        // use buttons property here since ev.button in some edge case is not updating well during the move.
        // but firefox doesn't support it, so we set the default value when it is not defined.
        buttons = _a === void 0 ? MOUSEMOVE_PRIMARY_BUTTON : _a;
        if (this._dragData && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {
            // cancel mouse down event and return early when the primary button is not pressed
            this._onMouseUp(event);
            return;
        }
        var root = target.root, key = target.key;
        if (this._isDragging) {
            if (this._isDroppable(target)) {
                // we can have nested drop targets in the DOM, like a folder inside a group. In that case, when we drag into
                // the inner target (folder), we first set dropTarget to the inner element. But the same event is bubbled to the
                // outer target too, and we need to prevent the outer one from taking over.
                // So, check if the last dropTarget is not a child of the current.
                if (this._dragData) {
                    if (this._dragData.dropTarget && this._dragData.dropTarget.key !== key && !this._isChild(root, this._dragData.dropTarget.root)) {
                        if (this._dragEnterCounts[this._dragData.dropTarget.key] > 0) {
                            _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this._dragData.dropTarget.root, 'dragleave');
                            _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(root, 'dragenter');
                            this._dragData.dropTarget = target;
                        }
                    }
                }
            }
        }
    };
    /**
     * when mouse leave a target while dragging some items, fire dragleave to the target
     */
    DragDropHelper.prototype._onMouseLeave = function (target, event) {
        if (this._isDragging) {
            if (this._dragData && this._dragData.dropTarget && this._dragData.dropTarget.key === target.key) {
                _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(target.root, 'dragleave');
                this._dragData.dropTarget = undefined;
            }
        }
    };
    /**
     * when mouse down on a draggable item, we start to track dragdata.
     */
    DragDropHelper.prototype._onMouseDown = function (target, event) {
        if (event.button !== MOUSEDOWN_PRIMARY_BUTTON) {
            // Ignore anything except the primary button.
            return;
        }
        if (this._isDraggable(target)) {
            this._dragData = {
                clientX: event.clientX,
                clientY: event.clientY,
                eventTarget: event.target,
                dragTarget: target
            };
            for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {
                var key = _a[_i];
                var activeTarget = this._activeTargets[key];
                if (activeTarget.target.root) {
                    this._events.on(activeTarget.target.root, 'mousemove', this._onMouseMove.bind(this, activeTarget.target));
                    this._events.on(activeTarget.target.root, 'mouseleave', this._onMouseLeave.bind(this, activeTarget.target));
                }
            }
        }
        else {
            this._dragData = null;
        }
    };
    /**
     * determine whether the child target is a descendant of the parent
     */
    DragDropHelper.prototype._isChild = function (parent, child) {
        var parentElement = react_dom__WEBPACK_IMPORTED_MODULE_0__["findDOMNode"](parent);
        var childElement = react_dom__WEBPACK_IMPORTED_MODULE_0__["findDOMNode"](child);
        while (childElement && childElement.parentElement) {
            if (childElement.parentElement === parentElement) {
                return true;
            }
            childElement = childElement.parentElement;
        }
        return false;
    };
    DragDropHelper.prototype._isDraggable = function (target) {
        var options = target.options;
        return !!(options.canDrag && options.canDrag(options.context.data));
    };
    DragDropHelper.prototype._isDroppable = function (target) {
        // TODO: take the drag item into consideration to prevent dragging an item into the same group
        var options = target.options;
        var dragContext = this._dragData && this._dragData.dragTarget ? this._dragData.dragTarget.options.context : undefined;
        return !!(options.canDrop && options.canDrop(options.context, dragContext));
    };
    return DragDropHelper;
}());



/***/ }),

/***/ "./lib/utilities/dragdrop/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DragDropHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/dragdrop/DragDropHelper.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropHelper", function() { return _DragDropHelper__WEBPACK_IMPORTED_MODULE_0__["DragDropHelper"]; });




/***/ }),

/***/ "./lib/utilities/grid/Grid.base.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBase", function() { return GridBase; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _FocusZone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/FocusZone.js");




var getClassNames = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["classNamesFunction"])();
var GridBase = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GridBase, _super);
    function GridBase(props) {
        var _this = _super.call(this, props) || this;
        _this._id = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])();
        return _this;
    }
    GridBase.prototype.render = function () {
        var _this = this;
        var _a = this.props, items = _a.items, columnCount = _a.columnCount, onRenderItem = _a.onRenderItem, positionInSet = _a.positionInSet, setSize = _a.setSize, styles = _a.styles;
        var htmlProps = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getNativeProps"])(this.props, _Utilities__WEBPACK_IMPORTED_MODULE_2__["htmlElementProperties"], [
            'onBlur, aria-posinset, aria-setsize'
        ]);
        var classNames = getClassNames(styles, { theme: this.props.theme });
        // Array to store the cells in the correct row index
        var rowsOfItems = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["toMatrix"])(items, columnCount);
        var content = (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("table", tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, htmlProps, { "aria-posinset": positionInSet, "aria-setsize": setSize, id: this._id, role: 'grid', className: classNames.root }),
            react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tbody", null, rowsOfItems.map(function (rows, rowIndex) {
                return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("tr", { role: 'row', key: _this._id + '-' + rowIndex + '-row' }, rows.map(function (cell, cellIndex) {
                    return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("td", { role: 'presentation', key: _this._id + '-' + cellIndex + '-cell', className: classNames.tableCell }, onRenderItem(cell, cellIndex)));
                })));
            }))));
        // Create the table/grid
        return this.props.doNotContainWithinFocusZone ? (content) : (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_FocusZone__WEBPACK_IMPORTED_MODULE_3__["FocusZone"], { isCircularNavigation: this.props.shouldFocusCircularNavigate, className: classNames.focusedContainer, onBlur: this.props.onBlur }, content));
    };
    return GridBase;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/utilities/grid/Grid.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return Grid; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Grid_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/grid/Grid.base.js");
/* harmony import */ var _Grid_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/grid/Grid.styles.js");



var Grid = Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["styled"])(_Grid_base__WEBPACK_IMPORTED_MODULE_1__["GridBase"], _Grid_styles__WEBPACK_IMPORTED_MODULE_2__["getStyles"]);


/***/ }),

/***/ "./lib/utilities/grid/Grid.styles.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyles", function() { return getStyles; });
var getStyles = function (props) {
    return {
        root: {
            padding: 2,
            outline: 'none'
        },
        tableCell: {
            padding: 0
        }
    };
};


/***/ }),

/***/ "./lib/utilities/grid/GridCell.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return GridCell; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/Button.js");




var GridCell = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GridCell, _super);
    function GridCell() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._onClick = function () {
            var _a = _this.props, onClick = _a.onClick, disabled = _a.disabled, item = _a.item;
            if (onClick && !disabled) {
                onClick(item);
            }
        };
        _this._onMouseEnter = function (ev) {
            var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseEnter = _a.onMouseEnter;
            var didUpdateOnEnter = onMouseEnter && onMouseEnter(ev);
            if (!didUpdateOnEnter && onHover && !disabled) {
                onHover(item);
            }
        };
        _this._onMouseMove = function (ev) {
            var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseMove = _a.onMouseMove;
            var didUpdateOnMove = onMouseMove && onMouseMove(ev);
            if (!didUpdateOnMove && onHover && !disabled) {
                onHover(item);
            }
        };
        _this._onMouseLeave = function (ev) {
            var _a = _this.props, onHover = _a.onHover, disabled = _a.disabled, onMouseLeave = _a.onMouseLeave;
            var didUpdateOnLeave = onMouseLeave && onMouseLeave(ev);
            if (!didUpdateOnLeave && onHover && !disabled) {
                onHover();
            }
        };
        _this._onFocus = function () {
            var _a = _this.props, onFocus = _a.onFocus, disabled = _a.disabled, item = _a.item;
            if (onFocus && !disabled) {
                onFocus(item);
            }
        };
        return _this;
    }
    GridCell.prototype.render = function () {
        var _a;
        var _b = this.props, item = _b.item, id = _b.id, className = _b.className, role = _b.role, selected = _b.selected, disabled = _b.disabled, onRenderItem = _b.onRenderItem, cellDisabledStyle = _b.cellDisabledStyle, cellIsSelectedStyle = _b.cellIsSelectedStyle, index = _b.index, label = _b.label, getClassNames = _b.getClassNames;
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_Button__WEBPACK_IMPORTED_MODULE_3__["CommandButton"], { id: id, "data-index": index, "data-is-focusable": true, disabled: disabled, className: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["css"])(className, (_a = {},
                _a['' + cellIsSelectedStyle] = selected,
                _a['' + cellDisabledStyle] = disabled,
                _a)), onClick: this._onClick, onMouseEnter: this._onMouseEnter, onMouseMove: this._onMouseMove, onMouseLeave: this._onMouseLeave, onFocus: this._onFocus, role: role, "aria-selected": selected, ariaLabel: label, title: label, getClassNames: getClassNames }, onRenderItem(item)));
    };
    GridCell.defaultProps = {
        disabled: false,
        id: Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getId"])('gridCell')
    };
    return GridCell;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));



/***/ }),

/***/ "./lib/utilities/grid/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/grid/Grid.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _Grid__WEBPACK_IMPORTED_MODULE_0__["Grid"]; });

/* harmony import */ var _GridCell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/grid/GridCell.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _GridCell__WEBPACK_IMPORTED_MODULE_1__["GridCell"]; });





/***/ }),

/***/ "./lib/utilities/groupedList/GroupedListUtility.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetGroupCount", function() { return GetGroupCount; });
/**
 * Takes an array of groups and returns a count of the groups and all descendant groups.
 * @param groups - The array of groups to count.
 */
var GetGroupCount = function (groups) {
    var total = 0;
    if (groups) {
        var remainingGroups = groups.slice();
        var currentGroup = void 0;
        while (remainingGroups && remainingGroups.length > 0) {
            ++total;
            currentGroup = remainingGroups.pop();
            if (currentGroup && currentGroup.children) {
                remainingGroups.push.apply(remainingGroups, currentGroup.children);
            }
        }
    }
    return total;
};


/***/ }),

/***/ "./lib/utilities/keytips/IKeytipTransitionKey.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipTransitionModifier", function() { return KeytipTransitionModifier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transitionKeysAreEqual", function() { return transitionKeysAreEqual; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transitionKeysContain", function() { return transitionKeysContain; });
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/Utilities.js");

var KeytipTransitionModifier;
(function (KeytipTransitionModifier) {
    KeytipTransitionModifier[KeytipTransitionModifier["shift"] = _Utilities__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].shift] = "shift";
    KeytipTransitionModifier[KeytipTransitionModifier["ctrl"] = _Utilities__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].ctrl] = "ctrl";
    KeytipTransitionModifier[KeytipTransitionModifier["alt"] = _Utilities__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].alt] = "alt";
    KeytipTransitionModifier[KeytipTransitionModifier["meta"] = _Utilities__WEBPACK_IMPORTED_MODULE_0__["KeyCodes"].leftWindow] = "meta";
})(KeytipTransitionModifier || (KeytipTransitionModifier = {}));
/**
 * Tests for equality between two IKeytipTransitionKeys.
 *
 * @param key1 - First IKeytipTransitionKey.
 * @param key2 - Second IKeytipTransitionKey.
 * @returns {boolean} T/F if the transition keys are equal.
 */
function transitionKeysAreEqual(key1, key2) {
    if (key1.key !== key2.key) {
        return false;
    }
    var mod1 = key1.modifierKeys;
    var mod2 = key2.modifierKeys;
    if ((!mod1 && mod2) || (mod1 && !mod2)) {
        // Not equal if one modifier is defined and the other isn't
        return false;
    }
    if (mod1 && mod2) {
        if (mod1.length !== mod2.length) {
            return false;
        }
        // Sort both arrays
        mod1 = mod1.sort();
        mod2 = mod2.sort();
        for (var i = 0; i < mod1.length; i++) {
            if (mod1[i] !== mod2[i]) {
                return false;
            }
        }
    }
    return true;
}
/**
 * Tests if 'key' is present in 'keys'.
 *
 * @param keys - Array of IKeytipTransitionKey.
 * @param key - IKeytipTransitionKey to find in 'keys'.
 * @returns {boolean} T/F if 'keys' contains 'key'.
 */
function transitionKeysContain(keys, key) {
    return !!Object(_Utilities__WEBPACK_IMPORTED_MODULE_0__["find"])(keys, function (transitionKey) {
        return transitionKeysAreEqual(transitionKey, key);
    });
}


/***/ }),

/***/ "./lib/utilities/keytips/KeytipConstants.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTP_PREFIX", function() { return KTP_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTP_SEPARATOR", function() { return KTP_SEPARATOR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTP_FULL_PREFIX", function() { return KTP_FULL_PREFIX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DATAKTP_TARGET", function() { return DATAKTP_TARGET; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DATAKTP_EXECUTE_TARGET", function() { return DATAKTP_EXECUTE_TARGET; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTP_LAYER_ID", function() { return KTP_LAYER_ID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTP_ARIA_SEPARATOR", function() { return KTP_ARIA_SEPARATOR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipEvents", function() { return KeytipEvents; });
var KTP_PREFIX = 'ktp';
var KTP_SEPARATOR = '-';
var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;
var DATAKTP_TARGET = 'data-ktp-target';
var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';
var KTP_LAYER_ID = 'ktp-layer-id';
var KTP_ARIA_SEPARATOR = ', ';
// Events
var KeytipEvents;
(function (KeytipEvents) {
    KeytipEvents.KEYTIP_ADDED = 'keytipAdded';
    KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';
    KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';
    KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';
    KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';
    KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';
    KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';
    KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';
})(KeytipEvents || (KeytipEvents = {}));


/***/ }),

/***/ "./lib/utilities/keytips/KeytipManager.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeytipManager", function() { return KeytipManager; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/keytips/KeytipConstants.js");



/**
 * This class is responsible for handling registering, updating, and unregistering of keytips
 */
var KeytipManager = /** @class */ (function () {
    function KeytipManager() {
        this.keytips = [];
        this.persistedKeytips = [];
        // This is (and should be) updated and kept in sync
        // with the inKeytipMode in KeytipLayer.
        this.inKeytipMode = false;
        // Boolean that gets checked before entering keytip mode by the KeytipLayer
        // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)
        this.shouldEnterKeytipMode = true;
    }
    /**
     * Static function to get singleton KeytipManager instance
     *
     * @returns {KeytipManager} Singleton KeytipManager instance
     */
    KeytipManager.getInstance = function () {
        return this._instance;
    };
    /**
     * Registers a keytip
     *
     * @param keytipProps - Keytip to register
     * @param persisted - T/F if this keytip should be persisted, default is false
     * @returns {string} Unique ID for this keytip
     */
    KeytipManager.prototype.register = function (keytipProps, persisted) {
        if (persisted === void 0) { persisted = false; }
        var props = keytipProps;
        if (!persisted) {
            // Add the overflowSetSequence if necessary
            props = this.addParentOverflow(keytipProps);
        }
        // Create a unique keytip
        var uniqueKeytip = this._getUniqueKtp(props);
        // Add to array
        persisted ? this.persistedKeytips.push(uniqueKeytip) : this.keytips.push(uniqueKeytip);
        var event = persisted ? _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].PERSISTED_KEYTIP_ADDED : _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].KEYTIP_ADDED;
        _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, event, {
            keytip: props,
            uniqueID: uniqueKeytip.uniqueID
        });
        return uniqueKeytip.uniqueID;
    };
    /**
     * Update a keytip
     *
     * @param keytipProps - Keytip to update
     * @param uniqueID - Unique ID of this keytip
     */
    KeytipManager.prototype.update = function (keytipProps, uniqueID) {
        var newKeytipProps = this.addParentOverflow(keytipProps);
        var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);
        var keytipIndex = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["findIndex"])(this.keytips, function (ktp) {
            return ktp.uniqueID === uniqueID;
        });
        if (keytipIndex >= 0) {
            // Update everything except 'visible'
            uniqueKeytip.keytip.visible = this.keytips[keytipIndex].keytip.visible;
            // Update keytip in this.keytips
            this.keytips = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["replaceElement"])(this.keytips, uniqueKeytip, keytipIndex);
            // Raise event
            _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].KEYTIP_UPDATED, {
                keytip: uniqueKeytip.keytip,
                uniqueID: uniqueKeytip.uniqueID
            });
        }
    };
    /**
     * Unregisters a keytip
     *
     * @param keytipToRemove - IKeytipProps of the keytip to remove
     * @param uniqueID - Unique ID of this keytip
     * @param persisted - T/F if this keytip should be persisted, default is false
     */
    KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {
        if (persisted === void 0) { persisted = false; }
        if (persisted) {
            // Remove keytip from this.persistedKeytips
            this.persistedKeytips = this.persistedKeytips.filter(function (uniqueKtp) {
                return uniqueKtp.uniqueID !== uniqueID;
            });
        }
        else {
            // Remove keytip from this.keytips
            this.keytips = this.keytips.filter(function (uniqueKtp) {
                return uniqueKtp.uniqueID !== uniqueID;
            });
        }
        var event = persisted ? _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].PERSISTED_KEYTIP_REMOVED : _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].KEYTIP_REMOVED;
        _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, event, {
            keytip: keytipToRemove,
            uniqueID: uniqueID
        });
    };
    /**
     * Manual call to enter keytip mode
     */
    KeytipManager.prototype.enterKeytipMode = function () {
        _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].ENTER_KEYTIP_MODE);
    };
    /**
     * Manual call to exit keytip mode
     */
    KeytipManager.prototype.exitKeytipMode = function () {
        _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].EXIT_KEYTIP_MODE);
    };
    /**
     * Gets all IKeytipProps from this.keytips
     *
     * @returns {IKeytipProps[]} All keytips stored in the manager
     */
    KeytipManager.prototype.getKeytips = function () {
        return this.keytips.map(function (uniqueKeytip) {
            return uniqueKeytip.keytip;
        });
    };
    /**
     * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it
     *
     * @param keytipProps - Keytip props to add overflowSetSequence to if necessary
     * @returns {IKeytipProps} - Modified keytip props, if needed to be modified
     */
    KeytipManager.prototype.addParentOverflow = function (keytipProps) {
        var fullSequence = keytipProps.keySequences.slice();
        fullSequence.pop();
        if (fullSequence.length !== 0) {
            var parentKeytip = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["find"])(this.getKeytips(), function (keytip) {
                return Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["arraysEqual"])(fullSequence, keytip.keySequences);
            });
            if (parentKeytip && parentKeytip.overflowSetSequence) {
                return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps, { overflowSetSequence: parentKeytip.overflowSetSequence });
            }
        }
        return keytipProps;
    };
    /**
     * Public function to bind for overflow items that have a submenu
     *
     * @param overflowButtonSequences
     * @param keytipSequences
     */
    KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {
        _Utilities__WEBPACK_IMPORTED_MODULE_1__["EventGroup"].raise(this, _utilities_keytips_KeytipConstants__WEBPACK_IMPORTED_MODULE_2__["KeytipEvents"].PERSISTED_KEYTIP_EXECUTE, {
            overflowButtonSequences: overflowButtonSequences,
            keytipSequences: keytipSequences
        });
    };
    /**
     * Creates an IUniqueKeytip object
     *
     * @param keytipProps - IKeytipProps
     * @param uniqueID - Unique ID, will default to the next unique ID if not passed
     * @returns {IUniqueKeytip} IUniqueKeytip object
     */
    KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {
        if (uniqueID === void 0) { uniqueID = Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["getId"])(); }
        return { keytip: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, keytipProps), uniqueID: uniqueID };
    };
    KeytipManager._instance = new KeytipManager();
    return KeytipManager;
}());



/***/ }),

/***/ "./lib/utilities/keytips/KeytipUtils.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequencesToID", function() { return sequencesToID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeOverflows", function() { return mergeOverflows; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ktpTargetFromSequences", function() { return ktpTargetFromSequences; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ktpTargetFromId", function() { return ktpTargetFromId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaDescribedBy", function() { return getAriaDescribedBy; });
/* harmony import */ var _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/keytips/KeytipConstants.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/Utilities.js");


/**
 * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified
 * keySequences should not include the initial keytip 'start' sequence.
 *
 * @param keySequences - Full path of IKeySequences for one keytip.
 * @returns {string} String to use for the keytip ID.
 */
function sequencesToID(keySequences) {
    return keySequences.reduce(function (prevValue, keySequence) {
        return prevValue + _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["KTP_SEPARATOR"] + keySequence.split('').join(_KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["KTP_SEPARATOR"]);
    }, _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["KTP_PREFIX"]);
}
/**
 * Merges an overflow sequence with a key sequence.
 *
 * @param keySequences - Full sequence for one keytip.
 * @param overflowKeySequences - Full overflow keytip sequence.
 * @returns {string[]} Sequence that will be used by the keytip when in the overflow.
 */
function mergeOverflows(keySequences, overflowKeySequences) {
    var overflowSequenceLen = overflowKeySequences.length;
    var overflowSequence = overflowKeySequences.slice().pop();
    var newKeySequences = keySequences.slice();
    return Object(_Utilities__WEBPACK_IMPORTED_MODULE_1__["addElementAtIndex"])(newKeySequences, overflowSequenceLen - 1, overflowSequence);
}
/**
 * Constructs the data-ktp-target attribute selector from a full key sequence.
 *
 * @param keySequences - Full string[] for a Keytip.
 * @returns {string} String selector to use to query for the keytip target.
 */
function ktpTargetFromSequences(keySequences) {
    return '[' + _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["DATAKTP_TARGET"] + '="' + sequencesToID(keySequences) + '"]';
}
/**
 * Constructs the data-ktp-execute-target attribute selector from a keytip ID.
 *
 * @param keytipId - ID of the Keytip.
 * @returns {string} String selector to use to query for the keytip execute target.
 */
function ktpTargetFromId(keytipId) {
    return '[' + _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["DATAKTP_EXECUTE_TARGET"] + '="' + keytipId + '"]';
}
/**
 * Gets the aria-describedby value to put on the component with this keytip.
 *
 * @param keySequences - KeySequences of the keytip.
 * @returns {string} The aria-describedby value to set on the component with this keytip.
 */
function getAriaDescribedBy(keySequences) {
    var describedby = ' ' + _KeytipConstants__WEBPACK_IMPORTED_MODULE_0__["KTP_LAYER_ID"];
    if (!keySequences.length) {
        // Return just the layer ID
        return describedby;
    }
    return describedby + ' ' + sequencesToID(keySequences);
}


/***/ }),

/***/ "./lib/utilities/positioning.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _positioning_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/positioning/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["Rectangle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__positioningTestPackage", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["__positioningTestPackage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionElement", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["positionElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionCallout", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["positionCallout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionCard", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["positionCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaxHeight", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["getMaxHeight"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOppositeEdge", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["getOppositeEdge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RectangleEdge", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["RectangleEdge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return _positioning_index__WEBPACK_IMPORTED_MODULE_0__["Position"]; });




/***/ }),

/***/ "./lib/utilities/positioning/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _positioning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/positioning/positioning.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["Rectangle"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__positioningTestPackage", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["__positioningTestPackage"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionElement", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["positionElement"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionCallout", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["positionCallout"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "positionCard", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["positionCard"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaxHeight", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["getMaxHeight"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOppositeEdge", function() { return _positioning__WEBPACK_IMPORTED_MODULE_0__["getOppositeEdge"]; });

/* harmony import */ var _positioning_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/positioning/positioning.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RectangleEdge", function() { return _positioning_types__WEBPACK_IMPORTED_MODULE_1__["RectangleEdge"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return _positioning_types__WEBPACK_IMPORTED_MODULE_1__["Position"]; });





/***/ }),

/***/ "./lib/utilities/positioning/positioning.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rectangle", function() { return Rectangle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__positioningTestPackage", function() { return __positioningTestPackage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionElement", function() { return positionElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionCallout", function() { return positionCallout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionCard", function() { return positionCard; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxHeight", function() { return getMaxHeight; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOppositeEdge", function() { return getOppositeEdge; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/common/DirectionalHint.js");
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _positioning_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/positioning/positioning.types.js");
var _a;




var Rectangle = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Rectangle, _super);
    function Rectangle() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Rectangle;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["Rectangle"]));

function _createPositionData(targetEdge, alignmentEdge, isAuto) {
    return {
        targetEdge: targetEdge,
        alignmentEdge: alignmentEdge,
        isAuto: isAuto
    };
}
// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target
var DirectionalDictionary = (_a = {},
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].topLeftEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].topCenter] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].topRightEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].topAutoEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top, undefined, true),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].bottomLeftEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].bottomCenter] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].bottomRightEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].bottomAutoEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom, undefined, true),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].leftTopEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].leftCenter] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].leftBottomEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].rightTopEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].rightCenter] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right),
    _a[_common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].rightBottomEdge] = _createPositionData(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom),
    _a);
function _isRectangleWithinBounds(rect, boundingRect) {
    if (rect.top < boundingRect.top) {
        return false;
    }
    if (rect.bottom > boundingRect.bottom) {
        return false;
    }
    if (rect.left < boundingRect.left) {
        return false;
    }
    if (rect.right > boundingRect.right) {
        return false;
    }
    return true;
}
/**
 * Gets all of the edges of a rectangle that are outside of the given bounds.
 * If there are no out of bounds edges it returns an empty array.
 */
function _getOutOfBoundsEdges(rect, boundingRect) {
    var outOfBounds = new Array();
    if (rect.top < boundingRect.top) {
        outOfBounds.push(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top);
    }
    if (rect.bottom > boundingRect.bottom) {
        outOfBounds.push(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom);
    }
    if (rect.left < boundingRect.left) {
        outOfBounds.push(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left);
    }
    if (rect.right > boundingRect.right) {
        outOfBounds.push(_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right);
    }
    return outOfBounds;
}
function _getEdgeValue(rect, edge) {
    return rect[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][edge]];
}
function _setEdgeValue(rect, edge, value) {
    rect[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][edge]] = value;
    return rect;
}
/**
 * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as
 * the itself already contains the other coordinate.
 * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.
 *
 * @param {Rectangle} rect
 * @param {RectangleEdge} edge
 * @returns {number}
 */
function _getCenterValue(rect, edge) {
    var edges = _getFlankingEdges(edge);
    return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;
}
/**
 * Flips the value depending on the edge.
 * If the edge is a "positive" edge, Top or Left, then the value should stay as it is.
 * If the edge is a "negative" edge, Bottom or Right, then the value should be flipped.
 * This is to account for the fact that the coordinates are effectively reveserved in certain cases for the "negative" edges.
 * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2.
 * 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.
 * If top edge 1 is less than edge 2 then it is out of bounds.
 *
 *
 * @param {RectangleEdge} edge
 * @param {number} value
 * @returns {number}
 */
function _getRelativeEdgeValue(edge, value) {
    if (edge > 0) {
        return value;
    }
    else {
        return value * -1;
    }
}
function _getRelativeRectEdgeValue(edge, rect) {
    return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));
}
function _getRelativeEdgeDifference(rect, hostRect, edge) {
    var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);
    return _getRelativeEdgeValue(edge, edgeDifference);
}
/**
 * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.
 * For example, if it's a bottom edge it will only change y coordinates.
 *
 * @param {Rectangle} rect
 * @param {RectangleEdge} edge
 * @param {number} newValue
 * @returns {Rectangle}
 */
function _moveEdge(rect, edge, newValue) {
    var difference = _getEdgeValue(rect, edge) - newValue;
    rect = _setEdgeValue(rect, edge, newValue);
    rect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);
    return rect;
}
/**
 * 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.
 *
 * @param {Rectangle} rect
 * @param {Rectangle} target
 * @param {RectangleEdge} edge
 * @param {number} [gap=0]
 * @returns {Rectangle}
 */
function _alignEdges(rect, target, edge, gap) {
    if (gap === void 0) { gap = 0; }
    return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));
}
/**
 * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.
 * For instance if targetEdge is bottom, then the rects top will be moved to match it.
 *
 * @param {Rectangle} rect
 * @param {Rectangle} target
 * @param {RectangleEdge} targetEdge
 * @param {number} [gap=0]
 * @returns {Rectangle}
 */
function _alignOppositeEdges(rect, target, targetEdge, gap) {
    if (gap === void 0) { gap = 0; }
    var oppositeEdge = targetEdge * -1;
    var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);
    return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);
}
/**
 * Tests to see if the given edge is within the bounds of the given rectangle.
 *
 * @param {Rectangle} rect
 * @param {Rectangle} bounds
 * @param {RectangleEdge} edge
 * @returns {boolean}
 */
function _isEdgeInBounds(rect, bounds, edge) {
    var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);
    return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);
}
/**
 * Attempts to move the rectangle through various sides of the target to find a place to fit.
 * If no fit is found, the original position should be returned.
 *
 * @param {Rectangle} rect
 * @param {Rectangle} target
 * @param {Rectangle} bounding
 * @param {IPositionDirectionalHintData} positionData
 * @param {number} [gap=0]
 * @returns {IElementPosition}
 */
function _flipToFit(rect, target, bounding, positionData, gap) {
    if (gap === void 0) { gap = 0; }
    var directions = [_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom, _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top];
    // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, therefore the order should be updated.
    if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()) {
        directions[0] *= -1;
        directions[1] *= -1;
    }
    var currentEstimate = rect;
    var currentEdge = positionData.targetEdge;
    var currentAlignment = positionData.alignmentEdge;
    // Keep switching sides until one is found with enough space. If all sides don't fit then return the unmodified element.
    for (var i = 0; i < 4; i++) {
        if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {
            directions.splice(directions.indexOf(currentEdge), 1);
            if (directions.length > 0) {
                if (directions.indexOf(currentEdge * -1) > -1) {
                    currentEdge = currentEdge * -1;
                }
                else {
                    currentAlignment = currentEdge;
                    currentEdge = directions.slice(-1)[0];
                }
                currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);
            }
        }
        else {
            return {
                elementRectangle: currentEstimate,
                targetEdge: currentEdge,
                alignmentEdge: currentAlignment
            };
        }
    }
    return {
        elementRectangle: rect,
        targetEdge: positionData.targetEdge,
        alignmentEdge: currentAlignment
    };
}
/**
 * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges into position,
 * when alignTargetEdge is specified.
 * @param elementEstimate
 * @param target
 * @param bounding
 * @param gap
 */
function _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {
    var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;
    var oppositeEdge = alignmentEdge * -1;
    var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);
    return {
        elementRectangle: newEstimate,
        targetEdge: targetEdge,
        alignmentEdge: oppositeEdge
    };
}
/**
 * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in
 * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.
 *
 * @param {Rectangle} element
 * @param {Rectangle} target
 * @param {Rectangle} bounding
 * @param {IPositionDirectionalHintData} positionData
 * @param {number} [gap=0]
 * @param {boolean} [directionalHintFixed]
 * @param {boolean} [coverTarget]
 * @returns {IElementPosition}
 */
function _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {
    if (gap === void 0) { gap = 0; }
    var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;
    var elementEstimate = {
        elementRectangle: element,
        targetEdge: positionData.targetEdge,
        alignmentEdge: alignmentEdge
    };
    if (!directionalHintFixed && !coverTarget) {
        elementEstimate = _flipToFit(element, target, bounding, positionData, gap);
    }
    var outOfBounds = _getOutOfBoundsEdges(element, bounding);
    if (alignTargetEdge) {
        // The edge opposite to the alignment edge might be out of bounds. Flip alignment to see if we can get it within bounds.
        if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {
            var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);
            if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {
                return flippedElementEstimate;
            }
            else {
                // If the flipped elements edges are still out of bounds, try nudging it.
                elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding);
            }
        }
    }
    else {
        elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding);
    }
    return elementEstimate;
}
/**
 * Iterates through a list of out of bounds edges and tries to nudge and align them.
 * @param outOfBoundsEdges Array of edges that are out of bounds
 * @param elementEstimate The current element positioning estimate
 * @param bounding The current bounds
 */
function _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding) {
    for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {
        var direction = outOfBoundsEdges_1[_i];
        elementEstimate.elementRectangle = _alignEdges(elementEstimate.elementRectangle, bounding, direction);
    }
    return elementEstimate;
}
/**
 * Moves the middle point on an edge to the point given.
 * Only moves in one direction. For instance if a bottom edge is passed in, then
 * the bottom edge will be moved in the x axis to match the point.
 *
 * @param {Rectangle} rect
 * @param {RectangleEdge} edge
 * @param {number} point
 * @returns {Rectangle}
 */
function _centerEdgeToPoint(rect, edge, point) {
    var positiveEdge = _getFlankingEdges(edge).positiveEdge;
    var elementMiddle = _getCenterValue(rect, edge);
    var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);
    return _moveEdge(rect, positiveEdge, point - distanceToMiddle);
}
/**
 * Moves the element rectangle to be appropriately positioned relative to a given target.
 * Does not flip or adjust the element.
 *
 * @param {Rectangle} elementToPosition
 * @param {Rectangle} target
 * @param {IPositionDirectionalHintData} positionData
 * @param {number} [gap=0]
 * @param {boolean} [coverTarget]
 * @returns {Rectangle}
 */
function _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {
    if (gap === void 0) { gap = 0; }
    var estimatedElementPosition;
    var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;
    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;
    estimatedElementPosition = coverTarget
        ? _alignEdges(elementToPosition, target, targetEdge, gap)
        : _alignOppositeEdges(elementToPosition, target, targetEdge, gap);
    // if no alignment edge is provided it's supposed to be centered.
    if (!alignmentEdge) {
        var targetMiddlePoint = _getCenterValue(target, targetEdge);
        estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);
    }
    else {
        estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);
    }
    return estimatedElementPosition;
}
/**
 * Returns the non-opposite edges of the target edge.
 * For instance if bottom is passed in then left and right will be returned.
 *
 * @param {RectangleEdge} edge
 * @returns {{ firstEdge: RectangleEdge, secondEdge: RectangleEdge }}
 */
function _getFlankingEdges(edge) {
    if (edge === _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top || edge === _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom) {
        return {
            positiveEdge: _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].left,
            negativeEdge: _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].right
        };
    }
    else {
        return {
            positiveEdge: _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top,
            negativeEdge: _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom
        };
    }
}
/**
 * Retrieve the final value for the return edge of elementRectangle.
 * If the elementRectangle is closer to one side of the bounds versus the other, the return edge is flipped to grow inward.
 *
 * @param elementRectangle
 * @param targetEdge
 * @param bounds
 */
function _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {
    if (bounds &&
        Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >
            Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {
        return returnEdge * -1;
    }
    return returnEdge;
}
/**
 * Finalizes the element positon based on the hostElement. Only returns the
 * rectangle values to position such that they are anchored to the target.
 * This helps prevent resizing from looking very strange.
 * For instance, if the target edge is top and aligned with the left side then
 * the bottom and left values are returned so as the callou shrinks it shrinks towards that corner.
 *
 * @param {Rectangle} elementRectangle
 * @param {HTMLElement} hostElement
 * @param {RectangleEdge} targetEdge
 * @param {RectangleEdge} bounds
 * @param {RectangleEdge} [alignmentEdge]
 * @param {boolean} coverTarget
 * @param {boolean} doNotFinalizeReturnEdge
 * @returns {IPartialIRectangle}
 */
function _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge) {
    var returnValue = {};
    var hostRect = _getRectangleFromElement(hostElement);
    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;
    var elementEdgeString = _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][elementEdge];
    var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;
    if (!doNotFinalizeReturnEdge) {
        returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);
    }
    returnValue[elementEdgeString] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);
    returnValue[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);
    return returnValue;
}
// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.
// We still want to position the beak based on it's midpoint which does not change. It will
// be at (beakwidth / 2, beakwidth / 2)
function _calculateActualBeakWidthInPixels(beakWidth) {
    return Math.sqrt(beakWidth * beakWidth * 2);
}
/**
 * Returns the appropriate IPositionData based on the props altered for RTL.
 * If directionalHintForRTL is passed in that is used if the page is RTL.
 * If a directionalHint is specified and no directionalHintForRTL is available and the page is RTL the hint will be flipped.
 * For instance bottomLeftEdge would become bottomRightEdge.
 * If there is no directionalHint passed in bottomAutoEdge is chosen automatically.
 *
 * @param {IPositionProps} props
 * @returns {IPositionDirectionalHintData}
 */
function _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {
    if (directionalHint === void 0) { directionalHint = _common_DirectionalHint__WEBPACK_IMPORTED_MODULE_1__["DirectionalHint"].bottomAutoEdge; }
    if (previousPositions) {
        return {
            alignmentEdge: previousPositions.alignmentEdge,
            isAuto: previousPositions.isAuto,
            targetEdge: previousPositions.targetEdge
        };
    }
    var positionInformation = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, DirectionalDictionary[directionalHint]);
    if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getRTL"])()) {
        // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.
        if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {
            positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;
        }
        return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;
    }
    return positionInformation;
}
/**
 * Get's the alignment data for the given information. This only really matters if the positioning is Auto.
 * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to
 * the center of the page.
 *
 * @param {IPositionDirectionalHintData} positionData
 * @param {Rectangle} target
 * @param {Rectangle} boundingRect
 * @param {boolean} [coverTarget]
 * @returns {IPositionDirectionalHintData}
 */
function _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {
    if (positionData.isAuto) {
        positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);
    }
    positionData.alignTargetEdge = alignTargetEdge;
    return positionData;
}
function getClosestEdge(targetEdge, target, boundingRect) {
    var targetCenter = _getCenterValue(target, targetEdge);
    var boundingCenter = _getCenterValue(boundingRect, targetEdge);
    var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;
    if (targetCenter <= boundingCenter) {
        return positiveEdge;
    }
    else {
        return negativeEdge;
    }
}
function _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {
    var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);
    if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {
        return {
            elementRectangle: estimatedElementPosition,
            targetEdge: positionData.targetEdge,
            alignmentEdge: positionData.alignmentEdge
        };
    }
    else {
        return _adjustFitWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);
    }
}
function _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {
    var targetEdge = elementPosition.targetEdge * -1;
    // The "host" element that we will use to help position the beak.
    var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);
    var returnValue = {};
    var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);
    returnValue[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);
    returnValue[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);
    return {
        elementPosition: tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, returnValue),
        closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),
        targetEdge: targetEdge
    };
}
function _positionBeak(beakWidth, elementPosition) {
    var target = elementPosition.targetRectangle;
    /**
     * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and
     * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,
     * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels
     * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.
     * */
    var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;
    var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);
    var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);
    var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);
    beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);
    beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));
    if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {
        beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);
    }
    else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {
        beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);
    }
    return beakPosition;
}
function _getRectangleFromElement(element) {
    var clientRect = element.getBoundingClientRect();
    return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);
}
function _getRectangleFromIRect(rect) {
    return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);
}
function _getTargetRect(bounds, target) {
    var targetRectangle;
    if (target) {
        if (target.preventDefault) {
            var ev = target;
            targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);
        }
        else if (target.getBoundingClientRect) {
            targetRectangle = _getRectangleFromElement(target);
            // HTMLImgElements can have x and y values. The check for it being a point must go last.
        }
        else {
            var point = target;
            targetRectangle = new Rectangle(point.x, point.x, point.y, point.y);
        }
        if (!_isRectangleWithinBounds(targetRectangle, bounds)) {
            var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);
            for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {
                var direction = outOfBounds_1[_i];
                targetRectangle[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][direction]] = bounds[_positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"][direction]];
            }
        }
    }
    else {
        targetRectangle = new Rectangle(0, 0, 0, 0);
    }
    return targetRectangle;
}
/**
 * If max height is less than zero it returns the bounds height instead.
 */
function _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {
    var maxHeight = 0;
    var directionalHint = DirectionalDictionary[targetEdge];
    // If cover target is set, then the max height should be calculated using the opposite of the target edge since
    // that's the direction that the callout will expand in.
    // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge
    // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height
    // is (bottom of target) - (top of screen) - gapSpace.
    var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;
    if (target === _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].top) {
        maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;
    }
    else if (target === _positioning_types__WEBPACK_IMPORTED_MODULE_3__["RectangleEdge"].bottom) {
        maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;
    }
    else {
        maxHeight = bounds.bottom - targetRectangle.top - gapSpace;
    }
    return maxHeight > 0 ? maxHeight : bounds.height;
}
function _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {
    var gap = props.gapSpace ? props.gapSpace : 0;
    var targetRect = _getTargetRect(boundingRect, props.target);
    var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);
    var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, positionedElement, { targetRectangle: targetRect });
}
function _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {
    var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge);
    return {
        elementPosition: finalizedElement,
        targetEdge: positionedElement.targetEdge,
        alignmentEdge: positionedElement.alignmentEdge
    };
}
function _positionElement(props, hostElement, elementToPosition, previousPositions) {
    var boundingRect = props.bounds
        ? _getRectangleFromIRect(props.bounds)
        : new Rectangle(0, window.innerWidth - Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getScrollbarWidth"])(), 0, window.innerHeight);
    var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);
    return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);
}
function _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {
    var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;
    var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);
    var positionProps = props;
    positionProps.gapSpace = gap;
    var boundingRect = props.bounds
        ? _getRectangleFromIRect(props.bounds)
        : new Rectangle(0, window.innerWidth - Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getScrollbarWidth"])(), 0, window.innerHeight);
    var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);
    var beakPositioned = _positionBeak(beakWidth, positionedElement);
    var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);
    return tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"]({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge), { beakPosition: finalizedBeakPosition });
}
function _positionCard(props, hostElement, callout, previousPositions) {
    return _positionCallout(props, hostElement, callout, previousPositions, true);
}
// END PRIVATE FUNCTIONS
/* tslint:disable:variable-name */
var __positioningTestPackage = {
    _finalizePositionData: _finalizePositionData,
    _finalizeBeakPosition: _finalizeBeakPosition,
    _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,
    _positionElementWithinBounds: _positionElementWithinBounds,
    _positionBeak: _positionBeak,
    _getPositionData: _getPositionData,
    _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle
};
/* tslint:enable:variable-name */
/**
 * Used to position an element relative to the given positioning props.
 * If positioning has been completed before, previousPositioningData
 * can be passed to ensure that the positioning element repositions based on
 * its previous targets rather than starting with directionalhint.
 *
 * @export
 * @param {IPositionProps} props
 * @param {HTMLElement} hostElement
 * @param {HTMLElement} elementToPosition
 * @param {IPositionedData} previousPositions
 * @returns
 */
function positionElement(props, hostElement, elementToPosition, previousPositions) {
    return _positionElement(props, hostElement, elementToPosition, previousPositions);
}
function positionCallout(props, hostElement, elementToPosition, previousPositions) {
    return _positionCallout(props, hostElement, elementToPosition, previousPositions);
}
function positionCard(props, hostElement, elementToPosition, previousPositions) {
    return _positionCard(props, hostElement, elementToPosition, previousPositions);
}
/**
 * Get's the maximum height that a rectangle can have in order to fit below or above a target.
 * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder
 * of the target given.
 * If no bounds are provided then the window is treated as the bounds.
 */
function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {
    if (gapSpace === void 0) { gapSpace = 0; }
    var mouseTarget = target;
    var elementTarget = target;
    var pointTarget = target;
    var targetRect;
    var boundingRectangle = bounds
        ? _getRectangleFromIRect(bounds)
        : new Rectangle(0, window.innerWidth - Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getScrollbarWidth"])(), 0, window.innerHeight);
    if (mouseTarget.stopPropagation) {
        targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);
    }
    else if (pointTarget.x !== undefined && pointTarget.y !== undefined) {
        targetRect = new Rectangle(pointTarget.x, pointTarget.x, pointTarget.y, pointTarget.y);
    }
    else {
        targetRect = _getRectangleFromElement(elementTarget);
    }
    return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);
}
/**
 * Returns the opposite edge of the given RectangleEdge.
 */
function getOppositeEdge(edge) {
    return edge * -1;
}


/***/ }),

/***/ "./lib/utilities/positioning/positioning.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RectangleEdge", function() { return RectangleEdge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return Position; });
var RectangleEdge;
(function (RectangleEdge) {
    RectangleEdge[RectangleEdge["top"] = 1] = "top";
    RectangleEdge[RectangleEdge["bottom"] = -1] = "bottom";
    RectangleEdge[RectangleEdge["left"] = 2] = "left";
    RectangleEdge[RectangleEdge["right"] = -2] = "right";
})(RectangleEdge || (RectangleEdge = {}));
var Position;
(function (Position) {
    Position[Position["top"] = 0] = "top";
    Position[Position["bottom"] = 1] = "bottom";
    Position[Position["start"] = 2] = "start";
    Position[Position["end"] = 3] = "end";
})(Position || (Position = {}));


/***/ }),

/***/ "./lib/utilities/selectableOption/SelectableOption.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllSelectedOptions", function() { return getAllSelectedOptions; });
function getAllSelectedOptions(options, selectedIndices) {
    var selectedOptions = [];
    for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {
        var index = selectedIndices_1[_i];
        var option = options[index];
        if (option) {
            selectedOptions.push(option);
        }
    }
    return selectedOptions;
}


/***/ }),

/***/ "./lib/utilities/selectableOption/SelectableOption.types.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return SelectableOptionMenuItemType; });
var SelectableOptionMenuItemType;
(function (SelectableOptionMenuItemType) {
    SelectableOptionMenuItemType[SelectableOptionMenuItemType["Normal"] = 0] = "Normal";
    SelectableOptionMenuItemType[SelectableOptionMenuItemType["Divider"] = 1] = "Divider";
    SelectableOptionMenuItemType[SelectableOptionMenuItemType["Header"] = 2] = "Header";
})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));


/***/ }),

/***/ "./lib/utilities/selectableOption/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SelectableOption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selectableOption/SelectableOption.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAllSelectedOptions", function() { return _SelectableOption__WEBPACK_IMPORTED_MODULE_0__["getAllSelectedOptions"]; });

/* harmony import */ var _SelectableOption_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/selectableOption/SelectableOption.types.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableOptionMenuItemType", function() { return _SelectableOption_types__WEBPACK_IMPORTED_MODULE_1__["SelectableOptionMenuItemType"]; });





/***/ }),

/***/ "./lib/utilities/selection/Selection.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["Selection"]; });




/***/ }),

/***/ "./lib/utilities/selection/SelectionZone.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return SelectionZone; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/tslib/tslib.es6.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/Utilities.js");
/* harmony import */ var _interfaces__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./lib/utilities/selection/interfaces.js");




// Selection definitions:
//
// Anchor index: the point from which a range selection starts.
// Focus index: the point from which layout movement originates from.
//
// These two can differ. Tests:
//
// If you start at index 5
// Shift click to index 10
//    The focus is 10, the anchor is 5.
// If you shift click at index 0
//    The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.
// If you click index 8
//    The anchor and focus are set to 8.
var SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';
var SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';
var SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';
var SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';
var SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';
var SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';
/**
 * {@docCategory Selection}
 */
var SelectionZone = /** @class */ (function (_super) {
    tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SelectionZone, _super);
    function SelectionZone() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
        /**
         * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone
         * react to the event. Note that focus events in IE \<= 11 will occur asynchronously after .focus() has
         * been called on an element, so we need a flag to store the idea that we will bypass the "next"
         * focus event that occurs. This method does that.
         */
        _this.ignoreNextFocus = function () {
            _this._handleNextFocus(false);
        };
        _this._onMouseDownCapture = function (ev) {
            var target = ev.target;
            if (document.activeElement !== target && !Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(document.activeElement, target)) {
                _this.ignoreNextFocus();
                return;
            }
            if (!Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["elementContains"])(target, _this._root.current)) {
                return;
            }
            while (target !== _this._root.current) {
                if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {
                    _this.ignoreNextFocus();
                    break;
                }
                target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
            }
        };
        /**
         * When we focus an item, for single/multi select scenarios, we should try to select it immediately
         * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them
         * specially.
         */
        _this._onFocus = function (ev) {
            var target = ev.target;
            var selection = _this.props.selection;
            var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;
            var selectionMode = _this._getSelectionMode();
            if (_this._shouldHandleFocus && selectionMode !== _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].none) {
                var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);
                var itemRoot = _this._findItemRoot(target);
                if (!isToggle && itemRoot) {
                    var index = _this._getItemIndex(itemRoot);
                    if (isToggleModifierPressed) {
                        // set anchor only.
                        selection.setIndexSelected(index, selection.isIndexSelected(index), true);
                        if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {
                            selection.setModal(true);
                            _this._setIsTouch(false);
                        }
                    }
                    else {
                        if (_this.props.isSelectedOnFocus) {
                            _this._onItemSurfaceClick(ev, index);
                        }
                    }
                }
            }
            _this._handleNextFocus(false);
        };
        _this._onMouseDown = function (ev) {
            _this._updateModifiers(ev);
            var target = ev.target;
            var itemRoot = _this._findItemRoot(target);
            // No-op if selection is disabled
            if (_this._isSelectionDisabled(target)) {
                return;
            }
            while (target !== _this._root.current) {
                if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {
                    break;
                }
                else if (itemRoot) {
                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {
                        break;
                    }
                    else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {
                        break;
                    }
                    else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&
                        !_this._isShiftPressed &&
                        !_this._isCtrlPressed &&
                        !_this._isMetaPressed) {
                        _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot));
                        break;
                    }
                    else if (_this.props.disableAutoSelectOnInputElements &&
                        (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {
                        return;
                    }
                }
                target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
            }
        };
        _this._onTouchStartCapture = function (ev) {
            _this._setIsTouch(true);
        };
        _this._onClick = function (ev) {
            _this._updateModifiers(ev);
            var target = ev.target;
            var itemRoot = _this._findItemRoot(target);
            var isSelectionDisabled = _this._isSelectionDisabled(target);
            while (target !== _this._root.current) {
                if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {
                    if (!isSelectionDisabled) {
                        _this._onToggleAllClick(ev);
                    }
                    break;
                }
                else if (itemRoot) {
                    var index = _this._getItemIndex(itemRoot);
                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {
                        if (!isSelectionDisabled) {
                            if (_this._isShiftPressed) {
                                _this._onItemSurfaceClick(ev, index);
                            }
                            else {
                                _this._onToggleClick(ev, index);
                            }
                        }
                        break;
                    }
                    else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {
                        // Items should be invokable even if selection is disabled.
                        _this._onInvokeClick(ev, index);
                        break;
                    }
                    else if (target === itemRoot) {
                        if (!isSelectionDisabled) {
                            _this._onItemSurfaceClick(ev, index);
                        }
                        break;
                    }
                    else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {
                        return;
                    }
                }
                target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
            }
        };
        _this._onContextMenu = function (ev) {
            var target = ev.target;
            var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;
            if (onItemContextMenu) {
                var itemRoot = _this._findItemRoot(target);
                if (itemRoot) {
                    var index = _this._getItemIndex(itemRoot);
                    _this._onInvokeMouseDown(ev, index);
                    var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);
                    // In order to keep back compat, if the value here is undefined, then we should still
                    // call preventDefault(). Only in the case where true is explicitly returned should
                    // the call be skipped.
                    if (!skipPreventDefault) {
                        ev.preventDefault();
                    }
                }
            }
        };
        /**
         * In multi selection, if you double click within an item's root (but not within the invoke element or input elements),
         * we should execute the invoke handler.
         */
        _this._onDoubleClick = function (ev) {
            var target = ev.target;
            var onItemInvoked = _this.props.onItemInvoked;
            var itemRoot = _this._findItemRoot(target);
            if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {
                var index = _this._getItemIndex(itemRoot);
                while (target !== _this._root.current) {
                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) || _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {
                        break;
                    }
                    else if (target === itemRoot) {
                        _this._onInvokeClick(ev, index);
                        break;
                    }
                    target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
                }
                target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
            }
        };
        _this._onKeyDownCapture = function (ev) {
            _this._updateModifiers(ev);
            _this._handleNextFocus(true);
        };
        _this._onKeyDown = function (ev) {
            _this._updateModifiers(ev);
            var target = ev.target;
            var isSelectionDisabled = _this._isSelectionDisabled(target);
            var selection = _this.props.selection;
            var isSelectAllKey = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].a && (_this._isCtrlPressed || _this._isMetaPressed);
            var isClearSelectionKey = ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].escape;
            // Ignore key downs from input elements.
            if (_this._isInputElement(target)) {
                // A key was pressed while an item in this zone was focused.
                return;
            }
            var selectionMode = _this._getSelectionMode();
            // If ctrl-a is pressed, select all (if all are not already selected.)
            if (isSelectAllKey && selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple && !selection.isAllSelected()) {
                if (!isSelectionDisabled) {
                    selection.setAllSelected(true);
                }
                ev.stopPropagation();
                ev.preventDefault();
                return;
            }
            // If escape is pressed, clear selection (if any are selected.)
            if (isClearSelectionKey && selection.getSelectedCount() > 0) {
                if (!isSelectionDisabled) {
                    selection.setAllSelected(false);
                }
                ev.stopPropagation();
                ev.preventDefault();
                return;
            }
            var itemRoot = _this._findItemRoot(target);
            // If a key was pressed within an item, we should treat "enters" as invokes and "space" as toggle
            if (itemRoot) {
                var index = _this._getItemIndex(itemRoot);
                while (target !== _this._root.current) {
                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {
                        // For toggle elements, assuming they are rendered as buttons, they will generate a click event,
                        // so we can no-op for any keydowns in this case.
                        break;
                    }
                    else if (_this._shouldAutoSelect(target)) {
                        if (!isSelectionDisabled) {
                            // If the event went to an element which should trigger auto-select, select it and then let
                            // the default behavior kick in.
                            _this._onInvokeMouseDown(ev, index);
                        }
                        break;
                    }
                    else if ((ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter || ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) &&
                        (target.tagName === 'BUTTON' || target.tagName === 'A' || target.tagName === 'INPUT')) {
                        return false;
                    }
                    else if (target === itemRoot) {
                        if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].enter) {
                            // Items should be invokable even if selection is disabled.
                            _this._onInvokeClick(ev, index);
                            ev.preventDefault();
                            return;
                        }
                        else if (ev.which === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].space) {
                            if (!isSelectionDisabled) {
                                _this._onToggleClick(ev, index);
                            }
                            ev.preventDefault();
                            return;
                        }
                        break;
                    }
                    target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
                }
            }
        };
        return _this;
    }
    SelectionZone.prototype.componentDidMount = function () {
        var win = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getWindow"])(this._root.current);
        // Track the latest modifier keys globally.
        this._events.on(win, 'keydown, keyup', this._updateModifiers, true);
        this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);
        this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);
        this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);
    };
    SelectionZone.prototype.render = function () {
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ms-SelectionZone", ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: "presentation", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus }, this.props.children));
    };
    SelectionZone.prototype._isSelectionDisabled = function (target) {
        if (this._getSelectionMode() === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].none) {
            return true;
        }
        while (target !== this._root.current) {
            if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {
                return true;
            }
            target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
        }
        return false;
    };
    SelectionZone.prototype._onToggleAllClick = function (ev) {
        var selection = this.props.selection;
        var selectionMode = this._getSelectionMode();
        if (selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple) {
            selection.toggleAllSelected();
            ev.stopPropagation();
            ev.preventDefault();
        }
    };
    SelectionZone.prototype._onToggleClick = function (ev, index) {
        var selection = this.props.selection;
        var selectionMode = this._getSelectionMode();
        selection.setChangeEvents(false);
        if (this.props.enterModalOnTouch && this._isTouch && !selection.isIndexSelected(index) && selection.setModal) {
            selection.setModal(true);
            this._setIsTouch(false);
        }
        if (selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple) {
            selection.toggleIndexSelected(index);
        }
        else if (selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].single) {
            var isSelected = selection.isIndexSelected(index);
            var isModal = selection.isModal && selection.isModal();
            selection.setAllSelected(false);
            selection.setIndexSelected(index, !isSelected, true);
            if (isModal && selection.setModal) {
                // Since the above call to setAllSelected(false) clears modal state,
                // restore it. This occurs because the SelectionMode of the Selection
                // may differ from the SelectionZone.
                selection.setModal(true);
            }
        }
        else {
            selection.setChangeEvents(true);
            return;
        }
        selection.setChangeEvents(true);
        ev.stopPropagation();
        // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior
        // for checkboxes if you use a checkbox for the toggle.
    };
    SelectionZone.prototype._onInvokeClick = function (ev, index) {
        var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;
        if (onItemInvoked) {
            onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);
            ev.preventDefault();
            ev.stopPropagation();
        }
    };
    SelectionZone.prototype._onItemSurfaceClick = function (ev, index) {
        var selection = this.props.selection;
        var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;
        var selectionMode = this._getSelectionMode();
        if (selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple) {
            if (this._isShiftPressed && !this._isTabPressed) {
                selection.selectToIndex(index, !isToggleModifierPressed);
            }
            else if (isToggleModifierPressed) {
                selection.toggleIndexSelected(index);
            }
            else {
                this._clearAndSelectIndex(index);
            }
        }
        else if (selectionMode === _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].single) {
            this._clearAndSelectIndex(index);
        }
    };
    SelectionZone.prototype._onInvokeMouseDown = function (ev, index) {
        var selection = this.props.selection;
        // Only do work if item is not selected.
        if (selection.isIndexSelected(index)) {
            return;
        }
        this._clearAndSelectIndex(index);
    };
    /**
     * To avoid high startup cost of traversing the DOM on component mount,
     * defer finding the scrollable parent until a click interaction.
     *
     * The styles will probably already calculated since we're running in a click handler,
     * so this is less likely to cause layout thrashing then doing it in mount.
     */
    SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {
        var scrollParent = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["findScrollableParent"])(this._root.current);
        // unbind this handler and replace binding with a binding on the actual scrollable parent
        this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);
        this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);
        // If we clicked inside the scrollable parent, call through to the handler on this click.
        if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {
            this._tryClearOnEmptyClick(ev);
        }
    };
    SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {
        if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {
            this.props.selection.setAllSelected(false);
        }
    };
    SelectionZone.prototype._clearAndSelectIndex = function (index) {
        var selection = this.props.selection;
        var isAlreadySingleSelected = selection.getSelectedCount() === 1 && selection.isIndexSelected(index);
        if (!isAlreadySingleSelected) {
            selection.setChangeEvents(false);
            selection.setAllSelected(false);
            selection.setIndexSelected(index, true, true);
            if (this.props.enterModalOnTouch && this._isTouch && selection.setModal) {
                selection.setModal(true);
                this._setIsTouch(false);
            }
            selection.setChangeEvents(true);
        }
    };
    /**
     * We need to track the modifier key states so that when focus events occur, which do not contain
     * modifier states in the Event object, we know how to behave.
     */
    SelectionZone.prototype._updateModifiers = function (ev) {
        this._isShiftPressed = ev.shiftKey;
        this._isCtrlPressed = ev.ctrlKey;
        this._isMetaPressed = ev.metaKey;
        var keyCode = ev.keyCode;
        this._isTabPressed = keyCode ? keyCode === _Utilities__WEBPACK_IMPORTED_MODULE_2__["KeyCodes"].tab : false;
    };
    SelectionZone.prototype._findItemRoot = function (target) {
        var selection = this.props.selection;
        while (target !== this._root.current) {
            var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);
            var index = Number(indexValue);
            if (indexValue !== null && index >= 0 && index < selection.getItems().length) {
                break;
            }
            target = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(target);
        }
        if (target === this._root.current) {
            return undefined;
        }
        return target;
    };
    SelectionZone.prototype._getItemIndex = function (itemRoot) {
        return Number(itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME));
    };
    SelectionZone.prototype._shouldAutoSelect = function (element) {
        return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);
    };
    SelectionZone.prototype._hasAttribute = function (element, attributeName) {
        var isToggle = false;
        while (!isToggle && element !== this._root.current) {
            isToggle = element.getAttribute(attributeName) === 'true';
            element = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(element);
        }
        return isToggle;
    };
    SelectionZone.prototype._isInputElement = function (element) {
        return element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';
    };
    SelectionZone.prototype._isNonHandledClick = function (element) {
        var doc = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getDocument"])();
        if (doc && element) {
            while (element && element !== doc.documentElement) {
                if (Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["isElementTabbable"])(element)) {
                    return false;
                }
                element = Object(_Utilities__WEBPACK_IMPORTED_MODULE_2__["getParent"])(element);
            }
        }
        return true;
    };
    SelectionZone.prototype._handleNextFocus = function (handleFocus) {
        var _this = this;
        if (this._shouldHandleFocusTimeoutId) {
            this._async.clearTimeout(this._shouldHandleFocusTimeoutId);
            this._shouldHandleFocusTimeoutId = undefined;
        }
        this._shouldHandleFocus = handleFocus;
        if (handleFocus) {
            this._async.setTimeout(function () {
                _this._shouldHandleFocus = false;
            }, 100);
        }
    };
    SelectionZone.prototype._setIsTouch = function (isTouch) {
        var _this = this;
        if (this._isTouchTimeoutId) {
            this._async.clearTimeout(this._isTouchTimeoutId);
            this._isTouchTimeoutId = undefined;
        }
        this._isTouch = true;
        if (isTouch) {
            this._async.setTimeout(function () {
                _this._isTouch = false;
            }, 300);
        }
    };
    SelectionZone.prototype._getSelectionMode = function () {
        var selection = this.props.selection;
        var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].none : _a;
        return selectionMode;
    };
    SelectionZone.defaultProps = {
        isSelectedOnFocus: true,
        selectionMode: _interfaces__WEBPACK_IMPORTED_MODULE_3__["SelectionMode"].multiple
    };
    return SelectionZone;
}(_Utilities__WEBPACK_IMPORTED_MODULE_2__["BaseComponent"]));



/***/ }),

/***/ "./lib/utilities/selection/index.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _interfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./lib/utilities/selection/interfaces.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _interfaces__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _interfaces__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _interfaces__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });

/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./lib/utilities/selection/Selection.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selection", function() { return _Selection__WEBPACK_IMPORTED_MODULE_1__["Selection"]; });

/* harmony import */ var _SelectionZone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./lib/utilities/selection/SelectionZone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionZone", function() { return _SelectionZone__WEBPACK_IMPORTED_MODULE_2__["SelectionZone"]; });






/***/ }),

/***/ "./lib/utilities/selection/interfaces.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../utilities/lib/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SELECTION_CHANGE", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["SELECTION_CHANGE"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionDirection", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["SelectionDirection"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionMode", function() { return _uifabric_utilities__WEBPACK_IMPORTED_MODULE_0__["SelectionMode"]; });




/***/ }),

/***/ "./lib/version.js":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../set-version/lib/index.js");
// office-ui-fabric-react@7.59.0
// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.

Object(_uifabric_set_version__WEBPACK_IMPORTED_MODULE_0__["setVersion"])('office-ui-fabric-react', '7.59.0');


/***/ }),

/***/ "react":
/***/ (function(module, exports) {

module.exports = React;

/***/ }),

/***/ "react-dom":
/***/ (function(module, exports) {

module.exports = ReactDOM;

/***/ })

/******/ });
//# sourceMappingURL=office-ui-fabric-react.js.map