UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

1,210 lines (1,124 loc) • 1.54 MB
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, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // 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 = 133); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (immutable) */ __webpack_exports__["__extends"] = __extends; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (immutable) */ __webpack_exports__["__rest"] = __rest; /* harmony export (immutable) */ __webpack_exports__["__decorate"] = __decorate; /* harmony export (immutable) */ __webpack_exports__["__param"] = __param; /* harmony export (immutable) */ __webpack_exports__["__metadata"] = __metadata; /* harmony export (immutable) */ __webpack_exports__["__awaiter"] = __awaiter; /* harmony export (immutable) */ __webpack_exports__["__generator"] = __generator; /* harmony export (immutable) */ __webpack_exports__["__exportStar"] = __exportStar; /* harmony export (immutable) */ __webpack_exports__["__values"] = __values; /* harmony export (immutable) */ __webpack_exports__["__read"] = __read; /* harmony export (immutable) */ __webpack_exports__["__spread"] = __spread; /* harmony export (immutable) */ __webpack_exports__["__await"] = __await; /* harmony export (immutable) */ __webpack_exports__["__asyncGenerator"] = __asyncGenerator; /* harmony export (immutable) */ __webpack_exports__["__asyncDelegator"] = __asyncDelegator; /* harmony export (immutable) */ __webpack_exports__["__asyncValues"] = __asyncValues; /*! ***************************************************************************** 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 = 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]; }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __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; } 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) 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 = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [0, 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 __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) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator]; return m ? m.call(o) : typeof __values === "function" ? __values(o) : o[Symbol.iterator](); } /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(137), exports); /***/ }), /* 2 */ /***/ (function(module, exports) { module.exports = React; /***/ }), /* 3 */ /***/ (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) || 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; }; 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 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 * @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) { 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'; 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) { 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(exports, __webpack_require__(140))) /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(170), exports); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(168), exports); /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(163), exports); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(213), exports); /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var DirectionalHint; (function (DirectionalHint) { /** * Appear above the target element, with the left edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["topLeftEdge"] = 0] = "topLeftEdge"; /** * Appear above the target element, with the centers of the callout and target aligning. */ DirectionalHint[DirectionalHint["topCenter"] = 1] = "topCenter"; /** * Appear above the target element, with the right edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["topRightEdge"] = 2] = "topRightEdge"; /** * Appear above the target element, aligning with the target element such that the callout tends toward the center of the screen. */ DirectionalHint[DirectionalHint["topAutoEdge"] = 3] = "topAutoEdge"; /** * Appear below the target element, with the left edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["bottomLeftEdge"] = 4] = "bottomLeftEdge"; /** * Appear below the target element, with the centers of the callout and target aligning. */ DirectionalHint[DirectionalHint["bottomCenter"] = 5] = "bottomCenter"; /** * Appear below the target element, with the right edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["bottomRightEdge"] = 6] = "bottomRightEdge"; /** * Appear below the target element, aligning with the target element such that the callout tends toward the center of the screen. */ DirectionalHint[DirectionalHint["bottomAutoEdge"] = 7] = "bottomAutoEdge"; /** * Appear to the left of the target element, with the top edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["leftTopEdge"] = 8] = "leftTopEdge"; /** * Appear to the left of the target element, with the centers of the callout and target aligning. */ DirectionalHint[DirectionalHint["leftCenter"] = 9] = "leftCenter"; /** * Appear to the left of the target element, with the bottom edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["leftBottomEdge"] = 10] = "leftBottomEdge"; /** * Appear to the right of the target element, with the top edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["rightTopEdge"] = 11] = "rightTopEdge"; /** * Appear to the right of the target element, with the centers of the callout and target aligning. */ DirectionalHint[DirectionalHint["rightCenter"] = 12] = "rightCenter"; /** * Appear to the right of the target element, with the bottom edges of the callout and target aligning. */ DirectionalHint[DirectionalHint["rightBottomEdge"] = 13] = "rightBottomEdge"; })(DirectionalHint = exports.DirectionalHint || (exports.DirectionalHint = {})); /***/ }), /* 9 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(216), exports); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(256), exports); /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); var React = __webpack_require__(2); var Utilities_1 = __webpack_require__(1); var Styling_1 = __webpack_require__(4); var Icon_1 = __webpack_require__(5); var DirectionalHint_1 = __webpack_require__(8); var ContextualMenu_1 = __webpack_require__(46); var BaseButton_classNames_1 = __webpack_require__(228); var SplitButton_classNames_1 = __webpack_require__(229); var BaseButton = (function (_super) { tslib_1.__extends(BaseButton, _super); function BaseButton(props, rootClassName) { var _this = _super.call(this, props) || this; _this._warnConditionallyRequiredProps(['menuProps', 'onClick'], 'split', _this.props.split); _this._warnDeprecations({ rootProps: undefined, icon: 'iconProps', menuIconName: 'menuIconProps', toggled: 'checked' }); _this._labelId = Utilities_1.getId(); _this._descriptionId = Utilities_1.getId(); _this._ariaDescriptionId = Utilities_1.getId(); _this.state = { menuProps: null }; return _this; } Object.defineProperty(BaseButton.prototype, "_isSplitButton", { get: function () { return (!!this.props.menuProps && !!this.props.onClick) && this.props.split === true; }, enumerable: true, configurable: true }); Object.defineProperty(BaseButton.prototype, "_isExpanded", { get: function () { return !!this.state.menuProps; }, enumerable: true, configurable: true }); BaseButton.prototype.render = function () { var _a = this.props, ariaDescription = _a.ariaDescription, ariaLabel = _a.ariaLabel, className = _a.className, description = _a.description, disabled = _a.disabled, href = _a.href, iconProps = _a.iconProps, styles = _a.styles, text = _a.text, checked = _a.checked, variantClassName = _a.variantClassName; this._classNames = BaseButton_classNames_1.getClassNames(styles, className, variantClassName, iconProps && iconProps.className, disabled, checked, this.state.menuProps != null && !this.props.split); var _b = this, _ariaDescriptionId = _b._ariaDescriptionId, _labelId = _b._labelId, _descriptionId = _b._descriptionId; // Anchor tag cannot be disabled hence in disabled state rendering // anchor button as normal button var renderAsAnchor = !disabled && !!href; var tag = renderAsAnchor ? 'a' : 'button'; var nativeProps = Utilities_1.getNativeProps(Utilities_1.assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? Utilities_1.anchorProperties : Utilities_1.buttonProperties, [ 'disabled' // Let disabled buttons be focused and styled as disabled. ]); // Check for ariaDescription, description or aria-describedby in the native props to determine source of aria-describedby // otherwise default to null. var ariaDescribedBy; if (ariaDescription) { ariaDescribedBy = _ariaDescriptionId; } else if (description) { ariaDescribedBy = _descriptionId; } else if (nativeProps['aria-describedby']) { ariaDescribedBy = nativeProps['aria-describedby']; } else { ariaDescribedBy = null; } // 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 = null; if (!ariaLabel) { if (nativeProps['aria-labelledby']) { ariaLabelledBy = nativeProps['aria-labelledby']; } else if (ariaDescribedBy) { ariaLabelledBy = text ? _labelId : null; } } var tabIndex = (this.props.tabIndex === undefined) ? (this._isSplitButton ? -1 : 0) : this.props.tabIndex; var buttonProps = Utilities_1.assign(nativeProps, { className: this._classNames.root, ref: this._resolveRef('_buttonElement'), 'disabled': disabled, tabIndex: tabIndex, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'data-is-focusable': (this.props['data-is-focusable'] === false || disabled) ? false : true, 'aria-pressed': checked }); if (this._isSplitButton) { return (this._onRenderSplitButtonContent(tag, buttonProps)); } else if (this.props.menuProps) { Utilities_1.assign(buttonProps, { 'onClick': this._onToggleMenu, 'aria-expanded': this._isExpanded, 'aria-owns': this.state.menuProps ? this._labelId + '-menu' : null, 'aria-haspopup': true }); } return this._onRenderContent(tag, buttonProps); }; BaseButton.prototype.focus = function () { if (this._buttonElement) { this._buttonElement.focus(); } }; BaseButton.prototype._onRenderContent = function (tag, buttonProps) { var props = this.props; var baseClassName = props.baseClassName, styles = props.styles, menuIconName = props.menuIconName, menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderText, onRenderText = _b === void 0 ? this._onRenderText : _b, _c = props.onRenderDescription, onRenderDescription = _c === void 0 ? this._onRenderDescription : _c, _d = props.onRenderAriaDescription, onRenderAriaDescription = _d === void 0 ? this._onRenderAriaDescription : _d, _e = props.onRenderChildren, onRenderChildren = _e === void 0 ? this._onRenderChildren : _e, _f = props.onRenderMenu, onRenderMenu = _f === void 0 ? this._onRenderMenu : _f, _g = props.onRenderMenuIcon, onRenderMenuIcon = _g === void 0 ? this._onRenderMenuIcon : _g; return React.createElement(tag, buttonProps, React.createElement('div', { className: this._classNames.flexContainer }, onRenderIcon(props, this._onRenderIcon), onRenderText(props, this._onRenderText), onRenderDescription(props, this._onRenderDescription), onRenderAriaDescription(props, this._onRenderAriaDescription), onRenderChildren(props, this._onRenderChildren), !this._isSplitButton && (menuProps || menuIconName || menuIconProps || this.props.onRenderMenuIcon) && onRenderMenuIcon(this.props, this._onRenderMenuIcon), this.state.menuProps && onRenderMenu(menuProps, this._onRenderMenu))); }; BaseButton.prototype._onRenderIcon = function (buttonProps, defaultRender) { var _a = this.props, baseClassName = _a.baseClassName, disabled = _a.disabled, icon = _a.icon, iconProps = _a.iconProps, styles = _a.styles, checked = _a.checked; if (icon || iconProps) { iconProps = iconProps || { iconName: icon }; } if (iconProps) { return Icon_1.Icon(tslib_1.__assign({}, iconProps, { className: this._classNames.icon })); } return null; }; BaseButton.prototype._onRenderText = function () { var _a = this.props, children = _a.children, disabled = _a.disabled, styles = _a.styles, text = _a.text; // For backwards compat, we should continue to take in the text content from children. if (text === undefined && typeof (children) === 'string') { text = children; } if (text) { return (React.createElement("span", { className: this._classNames.label, id: this._labelId }, text)); } return null; }; BaseButton.prototype._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; }; BaseButton.prototype._onRenderDescription = function (props) { var description = this.props.description; // ms-Button-description is only shown when the button type is compound. // In other cases it will not be displayed. return description ? (React.createElement("span", { className: this._classNames.description, id: this._descriptionId }, description)) : (null); }; BaseButton.prototype._onRenderAriaDescription = function () { var _a = this.props, ariaDescription = _a.ariaDescription, styles = _a.styles; // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan, // otherwise it will be assigned to descriptionSpan. return ariaDescription ? (React.createElement("span", { className: "" + (styles.screenReaderText || Styling_1.mergeStyles(Styling_1.hideText)), id: this._ariaDescriptionId }, ariaDescription)) : (null); }; BaseButton.prototype._onRenderMenuIcon = function (props) { var _a = this.props, baseClassName = _a.baseClassName, checked = _a.checked, disabled = _a.disabled, menuIconName = _a.menuIconName, menuIconProps = _a.menuIconProps; if (menuIconProps === undefined) { menuIconProps = { iconName: menuIconName === undefined ? 'ChevronDown' : menuIconName }; } return (menuIconProps ? React.createElement(Icon_1.Icon, tslib_1.__assign({}, menuIconProps, { className: this._classNames.icon })) : null); }; BaseButton.prototype._onRenderMenu = function (menuProps) { return (React.createElement(ContextualMenu_1.ContextualMenu, tslib_1.__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint_1.DirectionalHint.bottomLeftEdge }, menuProps, { className: 'ms-BaseButton-menuhost ' + menuProps.className, target: this._buttonElement, labelElementId: this._labelId, onDismiss: this._onToggleMenu }))); }; BaseButton.prototype._onToggleMenu = function () { var menuProps = this.props.menuProps; var currentMenuProps = this.state.menuProps; this.setState({ menuProps: currentMenuProps ? null : menuProps }); }; BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) { var _a = this.props, styles = _a.styles, disabled = _a.disabled; return (React.createElement("div", { "aria-labelledby": buttonProps.ariaLabel, "aria-disabled": disabled, "aria-haspopup": true, "aria-expanded": this._isExpanded, "aria-pressed": this.props.checked, "aria-describedby": buttonProps.ariaDescription, className: Utilities_1.css(disabled ? styles.splitButtonContainerDisabled : styles.splitButtonContainer), tabIndex: 0, onKeyDown: this.props.disabled ? undefined : this._onSplitButtonKeyDown }, React.createElement("span", { "aria-hidden": true, style: { 'display': 'flex' } }, this._onRenderContent(tag, buttonProps), this._onRenderSplitButtonMenuButton()))); }; BaseButton.prototype._onRenderSplitButtonMenuButton = function () { var _a = this.props, menuIconName = _a.menuIconName, menuIconProps = _a.menuIconProps, styles = _a.styles, disabled = _a.disabled, checked = _a.checked; if (menuIconProps === undefined) { menuIconProps = { iconName: menuIconName === undefined ? 'ChevronDown' : menuIconName }; } var classNames = styles ? SplitButton_classNames_1.getClassNames(styles, disabled || false, !!this.state.menuProps, checked || false) : undefined; return (React.createElement(BaseButton, { tabIndex: -1, styles: classNames, checked: this.props.checked, disabled: this.props.disabled, onClick: this._onToggleMenu, menuProps: undefined, iconProps: menuIconProps })); }; BaseButton.prototype._onSplitButtonKeyDown = function (ev) { switch (ev.which) { case 13 /* enter */: case 32 /* space */: this.props.onClick(null); return; } if (ev.altKey) { switch (ev.which) { case 40 /* down */: this._onToggleMenu(); return; } } }; BaseButton.defaultProps = { baseClassName: 'ms-Button', classNames: {}, styles: {}, split: false }; tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderIcon", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderText", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderChildren", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderDescription", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderAriaDescription", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderMenuIcon", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onRenderMenu", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onToggleMenu", null); tslib_1.__decorate([ Utilities_1.autobind ], BaseButton.prototype, "_onSplitButtonKeyDown", null); return BaseButton; }(Utilities_1.BaseComponent)); exports.BaseButton = BaseButton; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_